Browse Source

- Definition {_} throws an exception fix #1106 => update readme
- Uncaught TypeError for "percentage" alias fix #1108
- Wrong behavior for symbol delete in ip alias fix #1092

Robin Herbots 10 years ago
parent
commit
e65f5a19bd

+ 16 - 2
CHANGELOG.md

@@ -1,6 +1,20 @@
 # Change Log
 All notable changes to this project will be documented in this file.
 
+## UNRELEASED
+
+### Added
+
+### Updates
+- allow passing a selector to the mask function
+- fix for bower package
+
+### Fixed
+- Definition {_} throws an exception #1106 => update readme
+- Uncaught TypeError for "percentage" alias #1108
+- Wrong behavior for symbol delete in ip alias #1092
+- fix element validation for the vanilla dependencyLib #1104
+
 ## [3.2.3] - 2015-11-09
 
 ### Added
@@ -25,12 +39,12 @@ All notable changes to this project will be documented in this file.
 - Numeric aliases insert '0' in input after clearing if there was fraction part #1067
 - Clear optional tail in getvalue. See #1055 #1065
 
-## [3.2.2] - 2015-09-04
+## [3.2.2] - 2015-10-07
 
 ### Fixed
 - Missing comma in bower.json and component.json #1064
 
-## [3.2.1] - 2015-09-04
+## [3.2.1] - 2015-10-07
 
 ### Added
 - inputmask.dependencyLib.jquery

+ 8 - 2
README.md

@@ -201,7 +201,7 @@ Dynamic masks can change during the input.  To define a dynamic part use { }.
 
 {n} => n repeats<br>{n,m} => from n to m repeats
 
-Also {+} and {_} is allowed. + start from 1 and _ start from 0.
+Also {+} and {*} is allowed. + start from 1 and * start from 0.
 
 ```javascript
 $(document).ready(function(){
@@ -433,6 +433,12 @@ var im : new Inputmask("99-999-99");
 im.mask(document.querySelectorAll(selector));
 ```
 
+or
+
+```javascript
+Inputmask("99-999-99").mask(selector);
+```
+
 ### unmaskedvalue
 Get the `unmaskedvalue`
 
@@ -469,13 +475,13 @@ var input = document.getElementById(selector);
 if(input.inputmask)
   input.inputmask.remove()
 ```
+
 or
 
 ```javascript
 Inputmask.remove(document.getElementById(selector));
 ```
 
-
 ### getemptymask
 return the default (empty) mask value
 

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
   "name": "jquery.inputmask",
-  "version": "3.2.3",
+  "version": "3.2.4-13",
   "main": [
     "./dist/inputmask/inputmask.js"
   ],

+ 1 - 1
component.json

@@ -2,7 +2,7 @@
   "name": "jquery_inputmask",
   "repository": "robinherbots/jquery.inputmask",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
-  "version": "3.2.3",
+  "version": "3.2.4-13",
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "main": "./dist/jquery.inputmask.bundle.js",
   "scripts": [

+ 1 - 1
composer.json

@@ -1,7 +1,7 @@
 {
   "name": "robinherbots/jquery.inputmask",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
-  "version": "3.2.3",
+  "version": "3.2.4-13",
   "type": "library",
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "homepage": "http://robinherbots.github.io/jquery.inputmask",

+ 1 - 1
dist/inputmask/inputmask.date.extensions.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.3
+* Version: 3.2.4-13
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib.jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);

+ 1 - 1
dist/inputmask/inputmask.dependencyLib.jquery.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.3
+* Version: 3.2.4-13
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "jquery" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery")) : factory(jQuery);

+ 1 - 1
dist/inputmask/inputmask.extensions.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.3
+* Version: 3.2.4-13
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib.jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);

+ 20 - 20
dist/inputmask/inputmask.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.3
+* Version: 3.2.4-13
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib.jquery")) : factory(window.dependencyLib || jQuery);
@@ -297,20 +297,21 @@
                     if (!valid) break;
                 }
                 if (!valid) return getMaskSet().validPositions = $.extend(!0, {}, positionsClone), 
-                !1;
+                resetMaskSet(!0), !1;
             } else getMaskSet().validPositions[pos] = validTest;
-            return !0;
+            return resetMaskSet(!0), !0;
         }
         function stripValidPositions(start, end, nocheck, strict) {
             var i, startPos = start;
             for (getMaskSet().p = start, i = startPos; end > i; i++) void 0 !== getMaskSet().validPositions[i] && (nocheck === !0 || opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts) !== !1) && delete getMaskSet().validPositions[i];
-            for (resetMaskSet(!0), i = startPos + 1; i <= getLastValidPosition(); ) {
+            for (i = startPos + 1; i <= getLastValidPosition(); ) {
                 for (;void 0 !== getMaskSet().validPositions[startPos]; ) startPos++;
                 var s = getMaskSet().validPositions[startPos];
-                startPos > i && (i = startPos + 1);
-                var t = getMaskSet().validPositions[i];
-                void 0 !== t && isMask(i) && void 0 === s ? (positionCanMatchDefinition(startPos, t.match.def) && isValid(startPos, t.input, !0) !== !1 && (delete getMaskSet().validPositions[i], 
-                i++), startPos++) : i++;
+                if (startPos > i && (i = startPos + 1), void 0 === getMaskSet().validPositions[i] && isMask(i) || void 0 !== s) i++; else {
+                    var t = getTestTemplate(i);
+                    positionCanMatchDefinition(startPos, t.match.def) ? isValid(startPos, t.input || getPlaceholder(i), !0) !== !1 && (delete getMaskSet().validPositions[i], 
+                    i++) : isMask(i) || (i++, startPos--), startPos++;
+                }
             }
             var lvp = getLastValidPosition(), ml = getMaskLength();
             for (strict !== !0 && nocheck !== !0 && void 0 !== getMaskSet().validPositions[lvp] && getMaskSet().validPositions[lvp].input === opts.radixPoint && delete getMaskSet().validPositions[lvp], 
@@ -441,14 +442,13 @@
             return void 0 === getMaskSet()._buffer && (getMaskSet()._buffer = getMaskTemplate(!1, 1)), 
             getMaskSet()._buffer;
         }
-        function getBuffer() {
-            return void 0 === getMaskSet().buffer && (getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0)), 
-            getMaskSet().buffer;
+        function getBuffer(noCache) {
+            return (void 0 === getMaskSet().buffer || noCache === !0) && (noCache === !0 && (getMaskSet().test = {}), 
+            getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0)), getMaskSet().buffer;
         }
         function refreshFromBuffer(start, end, buffer) {
             var i;
-            if (buffer = buffer || getBuffer().slice(), start === !0) resetMaskSet(), start = 0, 
-            end = buffer.length; else for (i = start; end > i; i++) delete getMaskSet().validPositions[i], 
+            if (buffer = buffer, start === !0) resetMaskSet(), start = 0, end = buffer.length; else for (i = start; end > i; i++) delete getMaskSet().validPositions[i], 
             delete getMaskSet().tests[i];
             for (i = start; end > i; i++) resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter && isValid(i, buffer[i], !0, !0);
         }
@@ -475,7 +475,7 @@
                 var rslt = !1;
                 return $.each(getTests(position), function(ndx, tst) {
                     for (var test = tst.match, loopend = c ? 1 : 0, chrs = "", i = test.cardinality; i > loopend; i--) chrs += getBufferElement(position - (i - 1));
-                    if (c && (chrs += c), rslt = null != test.fn ? test.fn.test(chrs, getMaskSet(), position, strict, opts) : c !== test.def && c !== opts.skipOptionalPartCharacter || "" === test.def ? !1 : {
+                    if (c && (chrs += c), getBuffer(!0), rslt = null != test.fn ? test.fn.test(chrs, getMaskSet(), position, strict, opts) : c !== test.def && c !== opts.skipOptionalPartCharacter || "" === test.def ? !1 : {
                         c: test.def,
                         pos: position
                     }, rslt !== !1) {
@@ -500,7 +500,7 @@
                             if (validatedPos = void 0 !== rslt.pos ? rslt.pos : position, validatedPos !== position) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), 
                             !1;
                         } else if (rslt !== !0 && void 0 !== rslt.pos && rslt.pos !== position && (validatedPos = rslt.pos, 
-                        refreshFromBuffer(position, validatedPos), validatedPos !== position)) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), 
+                        refreshFromBuffer(position, validatedPos, getBuffer().slice()), validatedPos !== position)) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), 
                         !1;
                         return rslt !== !0 && void 0 === rslt.pos && void 0 === rslt.c ? !1 : (ndx > 0 && resetMaskSet(!0), 
                         setValidPosition(validatedPos, $.extend({}, tst, {
@@ -565,7 +565,7 @@
             for (var buffer = getBuffer(), pndx = pos - 1; pndx > -1 && !getMaskSet().validPositions[pndx]; pndx--) ;
             for (pndx++; pos > pndx; pndx++) void 0 === getMaskSet().validPositions[pndx] && ((!isMask(pndx) || buffer[pndx] !== getPlaceholder(pndx)) && getTests(pndx).length > 1 || buffer[pndx] === opts.radixPoint || "0" === buffer[pndx] && $.inArray(opts.radixPoint, buffer) < pndx) && _isValid(pndx, buffer[pndx], !0);
             var maskPos = pos, result = !1, positionsClone = $.extend(!0, {}, getMaskSet().validPositions);
-            if (maskPos < getMaskLength() && (getBuffer(), result = _isValid(maskPos, c, strict, fromSetValid), 
+            if (maskPos < getMaskLength() && (result = _isValid(maskPos, c, strict, fromSetValid), 
             (!strict || fromSetValid) && result === !1)) {
                 var currentPosValid = getMaskSet().validPositions[maskPos];
                 if (!currentPosValid || null !== currentPosValid.match.fn || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) {
@@ -582,8 +582,7 @@
             result === !0 && (result = {
                 pos: maskPos
             }), $.isFunction(opts.postValidation) && result !== !1 && !strict) {
-                resetMaskSet(!0);
-                var postValidResult = opts.postValidation(getBuffer(), opts);
+                var postValidResult = opts.postValidation(getBuffer(!0), opts);
                 if (postValidResult) {
                     if (postValidResult.refreshFromBuffer) {
                         var refresh = postValidResult.refreshFromBuffer;
@@ -638,7 +637,7 @@
                     if (result.refreshFromBuffer) {
                         var refresh = result.refreshFromBuffer;
                         refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, result.buffer || buffer), 
-                        resetMaskSet(!0), buffer = getBuffer();
+                        buffer = getBuffer(!0);
                     }
                     void 0 !== caretPos && (caretPos = void 0 !== result.caret ? result.caret : caretPos);
                 }
@@ -1262,7 +1261,8 @@
         masksCache: {},
         mask: function(elems) {
             var that = this;
-            return elems = void 0 === elems.length ? [ elems ] : elems, $.each(elems, function(ndx, el) {
+            return "string" == typeof elems && (elems = document.querySelectorAll(elems)), elems = elems.nodeName ? [ elems ] : elems, 
+            $.each(elems, function(ndx, el) {
                 var scopedOpts = $.extend(!0, {}, that.opts);
                 importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions));
                 var maskset = generateMaskSet(scopedOpts, that.noMasksCache);

+ 1 - 1
dist/inputmask/inputmask.numeric.extensions.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.3
+* Version: 3.2.4-13
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib.jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);

+ 1 - 1
dist/inputmask/inputmask.phone.extensions.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.3
+* Version: 3.2.4-13
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);

+ 1 - 1
dist/inputmask/inputmask.regex.extensions.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.3
+* Version: 3.2.4-13
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib.jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);

+ 1 - 1
dist/inputmask/jquery.inputmask.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.3
+* Version: 3.2.4-13
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);

+ 20 - 20
dist/jquery.inputmask.bundle.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.3
+* Version: 3.2.4-13
 */
 !function($) {
     function Inputmask(alias, options) {
@@ -295,20 +295,21 @@
                     if (!valid) break;
                 }
                 if (!valid) return getMaskSet().validPositions = $.extend(!0, {}, positionsClone), 
-                !1;
+                resetMaskSet(!0), !1;
             } else getMaskSet().validPositions[pos] = validTest;
-            return !0;
+            return resetMaskSet(!0), !0;
         }
         function stripValidPositions(start, end, nocheck, strict) {
             var i, startPos = start;
             for (getMaskSet().p = start, i = startPos; end > i; i++) void 0 !== getMaskSet().validPositions[i] && (nocheck === !0 || opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts) !== !1) && delete getMaskSet().validPositions[i];
-            for (resetMaskSet(!0), i = startPos + 1; i <= getLastValidPosition(); ) {
+            for (i = startPos + 1; i <= getLastValidPosition(); ) {
                 for (;void 0 !== getMaskSet().validPositions[startPos]; ) startPos++;
                 var s = getMaskSet().validPositions[startPos];
-                startPos > i && (i = startPos + 1);
-                var t = getMaskSet().validPositions[i];
-                void 0 !== t && isMask(i) && void 0 === s ? (positionCanMatchDefinition(startPos, t.match.def) && isValid(startPos, t.input, !0) !== !1 && (delete getMaskSet().validPositions[i], 
-                i++), startPos++) : i++;
+                if (startPos > i && (i = startPos + 1), void 0 === getMaskSet().validPositions[i] && isMask(i) || void 0 !== s) i++; else {
+                    var t = getTestTemplate(i);
+                    positionCanMatchDefinition(startPos, t.match.def) ? isValid(startPos, t.input || getPlaceholder(i), !0) !== !1 && (delete getMaskSet().validPositions[i], 
+                    i++) : isMask(i) || (i++, startPos--), startPos++;
+                }
             }
             var lvp = getLastValidPosition(), ml = getMaskLength();
             for (strict !== !0 && nocheck !== !0 && void 0 !== getMaskSet().validPositions[lvp] && getMaskSet().validPositions[lvp].input === opts.radixPoint && delete getMaskSet().validPositions[lvp], 
@@ -439,14 +440,13 @@
             return void 0 === getMaskSet()._buffer && (getMaskSet()._buffer = getMaskTemplate(!1, 1)), 
             getMaskSet()._buffer;
         }
-        function getBuffer() {
-            return void 0 === getMaskSet().buffer && (getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0)), 
-            getMaskSet().buffer;
+        function getBuffer(noCache) {
+            return (void 0 === getMaskSet().buffer || noCache === !0) && (noCache === !0 && (getMaskSet().test = {}), 
+            getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0)), getMaskSet().buffer;
         }
         function refreshFromBuffer(start, end, buffer) {
             var i;
-            if (buffer = buffer || getBuffer().slice(), start === !0) resetMaskSet(), start = 0, 
-            end = buffer.length; else for (i = start; end > i; i++) delete getMaskSet().validPositions[i], 
+            if (buffer = buffer, start === !0) resetMaskSet(), start = 0, end = buffer.length; else for (i = start; end > i; i++) delete getMaskSet().validPositions[i], 
             delete getMaskSet().tests[i];
             for (i = start; end > i; i++) resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter && isValid(i, buffer[i], !0, !0);
         }
@@ -473,7 +473,7 @@
                 var rslt = !1;
                 return $.each(getTests(position), function(ndx, tst) {
                     for (var test = tst.match, loopend = c ? 1 : 0, chrs = "", i = test.cardinality; i > loopend; i--) chrs += getBufferElement(position - (i - 1));
-                    if (c && (chrs += c), rslt = null != test.fn ? test.fn.test(chrs, getMaskSet(), position, strict, opts) : c !== test.def && c !== opts.skipOptionalPartCharacter || "" === test.def ? !1 : {
+                    if (c && (chrs += c), getBuffer(!0), rslt = null != test.fn ? test.fn.test(chrs, getMaskSet(), position, strict, opts) : c !== test.def && c !== opts.skipOptionalPartCharacter || "" === test.def ? !1 : {
                         c: test.def,
                         pos: position
                     }, rslt !== !1) {
@@ -498,7 +498,7 @@
                             if (validatedPos = void 0 !== rslt.pos ? rslt.pos : position, validatedPos !== position) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), 
                             !1;
                         } else if (rslt !== !0 && void 0 !== rslt.pos && rslt.pos !== position && (validatedPos = rslt.pos, 
-                        refreshFromBuffer(position, validatedPos), validatedPos !== position)) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), 
+                        refreshFromBuffer(position, validatedPos, getBuffer().slice()), validatedPos !== position)) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), 
                         !1;
                         return rslt !== !0 && void 0 === rslt.pos && void 0 === rslt.c ? !1 : (ndx > 0 && resetMaskSet(!0), 
                         setValidPosition(validatedPos, $.extend({}, tst, {
@@ -563,7 +563,7 @@
             for (var buffer = getBuffer(), pndx = pos - 1; pndx > -1 && !getMaskSet().validPositions[pndx]; pndx--) ;
             for (pndx++; pos > pndx; pndx++) void 0 === getMaskSet().validPositions[pndx] && ((!isMask(pndx) || buffer[pndx] !== getPlaceholder(pndx)) && getTests(pndx).length > 1 || buffer[pndx] === opts.radixPoint || "0" === buffer[pndx] && $.inArray(opts.radixPoint, buffer) < pndx) && _isValid(pndx, buffer[pndx], !0);
             var maskPos = pos, result = !1, positionsClone = $.extend(!0, {}, getMaskSet().validPositions);
-            if (maskPos < getMaskLength() && (getBuffer(), result = _isValid(maskPos, c, strict, fromSetValid), 
+            if (maskPos < getMaskLength() && (result = _isValid(maskPos, c, strict, fromSetValid), 
             (!strict || fromSetValid) && result === !1)) {
                 var currentPosValid = getMaskSet().validPositions[maskPos];
                 if (!currentPosValid || null !== currentPosValid.match.fn || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) {
@@ -580,8 +580,7 @@
             result === !0 && (result = {
                 pos: maskPos
             }), $.isFunction(opts.postValidation) && result !== !1 && !strict) {
-                resetMaskSet(!0);
-                var postValidResult = opts.postValidation(getBuffer(), opts);
+                var postValidResult = opts.postValidation(getBuffer(!0), opts);
                 if (postValidResult) {
                     if (postValidResult.refreshFromBuffer) {
                         var refresh = postValidResult.refreshFromBuffer;
@@ -636,7 +635,7 @@
                     if (result.refreshFromBuffer) {
                         var refresh = result.refreshFromBuffer;
                         refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, result.buffer || buffer), 
-                        resetMaskSet(!0), buffer = getBuffer();
+                        buffer = getBuffer(!0);
                     }
                     void 0 !== caretPos && (caretPos = void 0 !== result.caret ? result.caret : caretPos);
                 }
@@ -1260,7 +1259,8 @@
         masksCache: {},
         mask: function(elems) {
             var that = this;
-            return elems = void 0 === elems.length ? [ elems ] : elems, $.each(elems, function(ndx, el) {
+            return "string" == typeof elems && (elems = document.querySelectorAll(elems)), elems = elems.nodeName ? [ elems ] : elems, 
+            $.each(elems, function(ndx, el) {
                 var scopedOpts = $.extend(!0, {}, that.opts);
                 importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions));
                 var maskset = generateMaskSet(scopedOpts, that.noMasksCache);

File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/inputmask.date.extensions.min.js


+ 1 - 1
dist/min/inputmask/inputmask.dependencyLib.jquery.min.js

@@ -3,6 +3,6 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.3
+* Version: 3.2.4-13
 */
 !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return window.dependencyLib=a,a});

File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/inputmask.extensions.min.js


File diff suppressed because it is too large
+ 3 - 3
dist/min/inputmask/inputmask.min.js


File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/inputmask.numeric.extensions.min.js


File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/inputmask.phone.extensions.min.js


File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/inputmask.regex.extensions.min.js


File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/jquery.inputmask.min.js


File diff suppressed because it is too large
+ 4 - 4
dist/min/jquery.inputmask.bundle.min.js


+ 25 - 16
js/inputmask.js

@@ -119,7 +119,10 @@
 			masksCache: {},
 			mask: function(elems) {
 				var that = this;
-				elems = elems.length === undefined ? [elems] : elems;
+				if (typeof elems === "string") {
+					elems = document.querySelectorAll(elems);
+				}
+				elems = elems.nodeName ? [elems] : elems;
 				$.each(elems, function(ndx, el) {
 					var scopedOpts = $.extend(true, {}, that.opts);
 					importAttributeOptions(el, scopedOpts, $.extend(true, {}, that.userOptions));
@@ -838,10 +841,12 @@
 
 					if (!valid) {
 						getMaskSet().validPositions = $.extend(true, {}, positionsClone);
+						resetMaskSet(true);
 						return false;
 					}
 				} else getMaskSet().validPositions[pos] = validTest;
 
+				resetMaskSet(true);
 				return true;
 			}
 
@@ -857,7 +862,6 @@
 					}
 				}
 
-				resetMaskSet(true);
 				/*eslint-disable semi-spacing */
 				for (i = startPos + 1; i <= getLastValidPosition();) {
 					/*eslint-disable semi-spacing */
@@ -865,11 +869,16 @@
 					var s = getMaskSet().validPositions[startPos];
 					if (i < startPos) i = startPos + 1;
 					// while (getMaskSet().validPositions[i] == undefined) i++;
-					var t = getMaskSet().validPositions[i];
-					if (t !== undefined && isMask(i) && s === undefined) {
-						if (positionCanMatchDefinition(startPos, t.match.def) && isValid(startPos, t.input, true) !== false) {
-							delete getMaskSet().validPositions[i];
+					if ((getMaskSet().validPositions[i] !== undefined || !isMask(i)) && s === undefined) {
+						var t = getTestTemplate(i);
+						if (positionCanMatchDefinition(startPos, t.match.def)) {
+							if (isValid(startPos, t.input || getPlaceholder(i), true) !== false) {
+								delete getMaskSet().validPositions[i];
+								i++;
+							}
+						} else if (!isMask(i)) {
 							i++;
+							startPos--;
 						}
 						startPos++;
 					} else i++;
@@ -1131,7 +1140,7 @@
 				}
 				getMaskSet().tests[pos] = $.extend(true, [], matches); //set a clone to prevent overwriting some props
 
-				// console.log(pos + " - " + JSON.stringify(matches));
+				console.log(pos + " - " + JSON.stringify(matches));
 				return getMaskSet().tests[pos];
 			}
 
@@ -1143,8 +1152,9 @@
 				return getMaskSet()._buffer;
 			}
 
-			function getBuffer() {
-				if (getMaskSet().buffer === undefined) {
+			function getBuffer(noCache) {
+				if (getMaskSet().buffer === undefined || noCache === true) {
+					if (noCache === true) getMaskSet().test = {};
 					getMaskSet().buffer = getMaskTemplate(true, getLastValidPosition(), true);
 				}
 				return getMaskSet().buffer;
@@ -1152,7 +1162,7 @@
 
 			function refreshFromBuffer(start, end, buffer) {
 				var i;
-				buffer = buffer || getBuffer().slice(); //pass or work on clone
+				buffer = buffer;
 				if (start === true) {
 					resetMaskSet();
 					start = 0;
@@ -1212,6 +1222,8 @@
 							chrs += c;
 						}
 
+						//make sure the buffer is set and correct
+						getBuffer(true);
 						//return is false or a json object => { pos: ??, c: ??} or true
 						rslt = test.fn != null ?
 							test.fn.test(chrs, getMaskSet(), position, strict, opts) : (c === test.def || c === opts.skipOptionalPartCharacter) && test.def !== "" ? //non mask
@@ -1260,7 +1272,7 @@
 
 							} else if (rslt !== true && rslt.pos !== undefined && rslt.pos !== position) { //their is a position offset
 								validatedPos = rslt.pos;
-								refreshFromBuffer(position, validatedPos);
+								refreshFromBuffer(position, validatedPos, getBuffer().slice());
 								if (validatedPos !== position) {
 									rslt = $.extend(rslt, isValid(validatedPos, elem, true)); //revalidate new position strict
 									return false;
@@ -1436,7 +1448,6 @@
 				//		resetMaskSet(true); //masklenght can be altered on the process => reset to get the actual length
 				//}
 				if (maskPos < getMaskLength()) {
-					getBuffer(); //make sure the buffer
 					result = _isValid(maskPos, c, strict, fromSetValid);
 					if ((!strict || fromSetValid) && result === false) {
 						var currentPosValid = getMaskSet().validPositions[maskPos];
@@ -1465,8 +1476,7 @@
 					};
 				}
 				if ($.isFunction(opts.postValidation) && result !== false && !strict) {
-					resetMaskSet(true);
-					var postValidResult = opts.postValidation(getBuffer(), opts);
+					var postValidResult = opts.postValidation(getBuffer(true), opts);
 					if (!postValidResult) {
 						resetMaskSet(true);
 						getMaskSet().validPositions = $.extend(true, {}, positionsClone); //revert validation changes
@@ -1546,8 +1556,7 @@
 						if (result.refreshFromBuffer) {
 							var refresh = result.refreshFromBuffer;
 							refreshFromBuffer(refresh === true ? refresh : refresh.start, refresh.end, result.buffer || buffer);
-							resetMaskSet(true);
-							buffer = getBuffer();
+							buffer = getBuffer(true);
 						}
 						//only alter when intented !== undefined
 						if (caretPos !== undefined) caretPos = result.caret !== undefined ? result.caret : caretPos;

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "jquery.inputmask",
-  "version": "3.2.3",
+  "version": "3.2.4-13",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
   "main": "./dist/inputmask/jquery.inputmask.js",
   "files": [

+ 1 - 0
qunit/config.js

@@ -8,5 +8,6 @@ require.config({
 		// "inputmask.dependencyLib": "../extra/dependencyLibs/inputmask.dependencyLib",
 		// "inputmask.dependencyLib": "../extra/dependencyLibs/inputmask.dependencyLib.jqlite",
 		"inputmask": "../dist/inputmask/inputmask"
+		// "inputmask": "../js/inputmask"
 	}
 });

+ 0 - 4
qunit/tests_base.js

@@ -2,11 +2,7 @@ define([
 	"qunit",
 	"inputmask.dependencyLib",
 	"inputmask",
-	"../dist/inputmask/inputmask.date.extensions",
 	"../dist/inputmask/inputmask.extensions",
-	"../dist/inputmask/inputmask.numeric.extensions",
-	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function(qunit, $, Inputmask) {

+ 296 - 298
qunit/tests_date.js

@@ -8,302 +8,300 @@ define([
 	"simulator"
 ], function(qunit, $, Inputmask) {
 	qunit.module("Date.Extensions");
-		test("inputmask(\"dd/mm/yyyy\") - input 2331973", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("dd/mm/yyyy").mask(testmask);
-
-			testmask.focus();
-
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("3");
-			$("#testmask").SendKey("3");
-			$("#testmask").SendKey("1");
-			$("#testmask").SendKey("9");
-			$("#testmask").SendKey("7");
-			$("#testmask").SendKey("3");
-
-			equal(testmask.value, "23/03/1973", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-		test("inputmask(\"mm/dd/yyyy\") - input 3231973", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("mm/dd/yyyy").mask(testmask);
-
-			testmask.focus();
-
-			$("#testmask").SendKey("3");
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("3");
-			$("#testmask").SendKey("1");
-			$("#testmask").SendKey("9");
-			$("#testmask").SendKey("7");
-			$("#testmask").SendKey("3");
-
-			equal(testmask.value, "03/23/1973", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"dd/mm/yyyy\") - input 29022012", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("dd/mm/yyyy").mask(testmask);
-
-			testmask.focus();
-
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("9");
-			$("#testmask").SendKey("0");
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("0");
-			$("#testmask").SendKey("1");
-			$("#testmask").SendKey("2");
-
-			equal(testmask.value, "29/02/2012", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"dd/mm/yyyy\") - input 29022013", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("dd/mm/yyyy").mask(testmask);
-
-			testmask.focus();
-
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("9");
-			$("#testmask").SendKey("0");
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("0");
-			$("#testmask").SendKey("1");
-			$("#testmask").SendKey("3");
-
-			equal(testmask.value, "29/02/201y", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"mm/dd/yyyy\") - input 02292012", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("mm/dd/yyyy").mask(testmask);
-
-			testmask.focus();
-
-			$("#testmask").SendKey("0");
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("9");
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("0");
-			$("#testmask").SendKey("1");
-			$("#testmask").SendKey("2");
-
-			equal(testmask.value, "02/29/2012", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"mm/dd/yyyy\") - input 02292013", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("mm/dd/yyyy").mask(testmask);
-
-			testmask.focus();
-
-			$("#testmask").SendKey("0");
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("9");
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("0");
-			$("#testmask").SendKey("1");
-			$("#testmask").SendKey("3");
-
-			equal(testmask.value, "02/29/201y", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"dd/mm/yyyy\") - input CTRL RIGHT", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("dd/mm/yyyy").mask(testmask);
-
-			testmask.focus();
-			$("#testmask").SendKey(Inputmask.keyCode.RIGHT, Inputmask.keyCode.CONTROL);
-			ok(testmask.value != "dd/mm/yyyy", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"dd/mm/yyyy\") - input 2331973 BACKSPACE x4 2013", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("dd/mm/yyyy").mask(testmask);
-
-			testmask.focus();
-
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("3");
-			$("#testmask").SendKey("3");
-			$("#testmask").SendKey("1");
-			$("#testmask").SendKey("9");
-			$("#testmask").SendKey("7");
-			$("#testmask").SendKey("3");
-			$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
-			$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
-			$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
-			$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
-			$("#testmask").SendKey("2");
-			$("#testmask").SendKey("0");
-			$("#testmask").SendKey("1");
-			$("#testmask").SendKey("3");
-
-			equal(testmask.value, "23/03/2013", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"dd/mm/yyyy\") - input 23373 ", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("dd/mm/yyyy").mask(testmask);
-
-			testmask.focus();
-
-			$("#testmask").Type("23373");
-			equal(testmask.value, "23/03/2073", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"dd/mm/yyyy\") - input 23318 - jimithing277", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("dd/mm/yyyy").mask(testmask);
-
-			testmask.focus();
-
-			$("#testmask").Type("23318");
-			equal(testmask.value, "23/03/2018", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"dd/mm/yyyy\", { yearrange: { minyear: 1900, maxyear: 2000 } }) - input 23373 ", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("dd/mm/yyyy", {
-				yearrange: {
-					minyear: 1900,
-					maxyear: 2000
-				}
-			}).mask(testmask);
-
-			testmask.focus();
-
-			$("#testmask").Type("23373");
-			equal(testmask.value, "23/03/1973", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"hh:mm\") - add remove add", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask('hh:mm', {
-				clearIncomplete: true
-			}).mask(testmask);
-			testmask.inputmask.remove();
-			Inputmask('hh:mm', {
-				clearIncomplete: true
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("abcdef");
-			$("#testmask").Type("23:50");
-
-			equal(testmask.value, "23:50", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"mm/yyyy\") - input 31973", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("mm/yyyy").mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("31973");
-			equal(testmask.value, "03/1973", "Result " + testmask.value);
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"mm/dd/yyyy\") - select some input 1 - Guamaso", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("mm/dd/yyyy").mask(testmask);
-
-			testmask.focus();
-			$.caret(testmask, 0, 5);
-			$("#testmask").Type("1");
-			equal(testmask.value, "1m/dd/yyyy", "Result " + testmask.value);
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"dd/mm/yyyy\") - input 2331973 - remove 23", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("dd/mm/yyyy").mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("23031973");
-			$.caret(testmask, 0, 2);
-			$("#testmask").SendKey(Inputmask.keyCode.DELETE);
-
-			equal(testmask.value, "dd/03/1973", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("inputmask(\"dd/mm/yyyy\") - input 01011000 - Skiv22", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("dd/mm/yyyy", {
-				yearrange: {
-					minyear: 1000,
-					maxyear: 2099
-				}
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("01011000");
-
-			equal(testmask.value, "01/01/1000", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
+	qunit.test("inputmask(\"dd/mm/yyyy\") - input 2331973", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("dd/mm/yyyy").mask(testmask);
+
+		testmask.focus();
+
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("3");
+		$("#testmask").SendKey("3");
+		$("#testmask").SendKey("1");
+		$("#testmask").SendKey("9");
+		$("#testmask").SendKey("7");
+		$("#testmask").SendKey("3");
+
+		assert.equal(testmask.value, "23/03/1973", "Result " + testmask.value);
 	});
+	qunit.test("inputmask(\"mm/dd/yyyy\") - input 3231973", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("mm/dd/yyyy").mask(testmask);
+
+		testmask.focus();
+
+		$("#testmask").SendKey("3");
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("3");
+		$("#testmask").SendKey("1");
+		$("#testmask").SendKey("9");
+		$("#testmask").SendKey("7");
+		$("#testmask").SendKey("3");
+
+		assert.equal(testmask.value, "03/23/1973", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"dd/mm/yyyy\") - input 29022012", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("dd/mm/yyyy").mask(testmask);
+
+		testmask.focus();
+
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("9");
+		$("#testmask").SendKey("0");
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("0");
+		$("#testmask").SendKey("1");
+		$("#testmask").SendKey("2");
+
+		assert.equal(testmask.value, "29/02/2012", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"dd/mm/yyyy\") - input 29022013", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("dd/mm/yyyy").mask(testmask);
+
+		testmask.focus();
+
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("9");
+		$("#testmask").SendKey("0");
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("0");
+		$("#testmask").SendKey("1");
+		$("#testmask").SendKey("3");
+
+		assert.equal(testmask.value, "29/02/201y", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"mm/dd/yyyy\") - input 02292012", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("mm/dd/yyyy").mask(testmask);
+
+		testmask.focus();
+
+		$("#testmask").SendKey("0");
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("9");
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("0");
+		$("#testmask").SendKey("1");
+		$("#testmask").SendKey("2");
+
+		assert.equal(testmask.value, "02/29/2012", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"mm/dd/yyyy\") - input 02292013", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("mm/dd/yyyy").mask(testmask);
+
+		testmask.focus();
+
+		$("#testmask").SendKey("0");
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("9");
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("0");
+		$("#testmask").SendKey("1");
+		$("#testmask").SendKey("3");
+
+		assert.equal(testmask.value, "02/29/201y", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"dd/mm/yyyy\") - input CTRL RIGHT", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("dd/mm/yyyy").mask(testmask);
+
+		testmask.focus();
+		$("#testmask").SendKey(Inputmask.keyCode.RIGHT, Inputmask.keyCode.CONTROL);
+		ok(testmask.value != "dd/mm/yyyy", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"dd/mm/yyyy\") - input 2331973 BACKSPACE x4 2013", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("dd/mm/yyyy").mask(testmask);
+
+		testmask.focus();
+
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("3");
+		$("#testmask").SendKey("3");
+		$("#testmask").SendKey("1");
+		$("#testmask").SendKey("9");
+		$("#testmask").SendKey("7");
+		$("#testmask").SendKey("3");
+		$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
+		$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
+		$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
+		$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
+		$("#testmask").SendKey("2");
+		$("#testmask").SendKey("0");
+		$("#testmask").SendKey("1");
+		$("#testmask").SendKey("3");
+
+		assert.equal(testmask.value, "23/03/2013", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"dd/mm/yyyy\") - input 23373 ", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("dd/mm/yyyy").mask(testmask);
+
+		testmask.focus();
+
+		$("#testmask").Type("23373");
+		assert.equal(testmask.value, "23/03/2073", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"dd/mm/yyyy\") - input 23318 - jimithing277", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("dd/mm/yyyy").mask(testmask);
+
+		testmask.focus();
+
+		$("#testmask").Type("23318");
+		assert.equal(testmask.value, "23/03/2018", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"dd/mm/yyyy\", { yearrange: { minyear: 1900, maxyear: 2000 } }) - input 23373 ", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("dd/mm/yyyy", {
+			yearrange: {
+				minyear: 1900,
+				maxyear: 2000
+			}
+		}).mask(testmask);
+
+		testmask.focus();
+
+		$("#testmask").Type("23373");
+		assert.equal(testmask.value, "23/03/1973", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"hh:mm\") - add remove add", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask('hh:mm', {
+			clearIncomplete: true
+		}).mask(testmask);
+		testmask.inputmask.remove();
+		Inputmask('hh:mm', {
+			clearIncomplete: true
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("abcdef");
+		$("#testmask").Type("23:50");
+
+		assert.equal(testmask.value, "23:50", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"mm/yyyy\") - input 31973", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("mm/yyyy").mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("31973");
+		assert.equal(testmask.value, "03/1973", "Result " + testmask.value);
+
+	});
+
+	qunit.test("inputmask(\"mm/dd/yyyy\") - select some input 1 - Guamaso", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("mm/dd/yyyy").mask(testmask);
+
+		testmask.focus();
+		$.caret(testmask, 0, 5);
+		$("#testmask").Type("1");
+		assert.equal(testmask.value, "1m/dd/yyyy", "Result " + testmask.value);
+
+	});
+
+	qunit.test("inputmask(\"dd/mm/yyyy\") - input 2331973 - remove 23", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("dd/mm/yyyy").mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("23031973");
+		$.caret(testmask, 0, 2);
+		$("#testmask").SendKey(Inputmask.keyCode.DELETE);
+
+		assert.equal(testmask.value, "dd/03/1973", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("inputmask(\"dd/mm/yyyy\") - input 01011000 - Skiv22", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("dd/mm/yyyy", {
+			yearrange: {
+				minyear: 1000,
+				maxyear: 2099
+			}
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("01011000");
+
+		assert.equal(testmask.value, "01/01/1000", "Result " + testmask.value);
+
+
+	});
+});

+ 275 - 259
qunit/tests_dynamic.js

@@ -11,263 +11,279 @@ define([
 	"simulator"
 ], function(qunit, $, Inputmask) {
 
-		qunit.module("Dynamic Masks");
-		test("inputmask(\"9-a{3}9{3}\" - simple dynamic mask", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("9-a{3}9{3}").mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("1abc123");
-
-			equal(testmask.value, "1-abc123", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-		test("inputmask(\"9-a{1,3}9{1,3}\" - simple dynamic mask", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("9-a{1,3}9{1,3}").mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("1a1");
-
-			equal(testmask.value, "1-a1", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-		test("inputmask(\"9-a{1,3}9{1,3}\" - simple dynamic mask - greedy false", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("9-a{1,3}9{1,3}", {
-				greedy: false
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("1a1");
-
-			equal(testmask.value, "1-a1", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-		test("inputmask(\"9-a{1,3}/9{2,3}\" - simple dynamic mask - greedy true", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("9-a{1,3}/9{2,3}", {
-				greedy: true
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("1a/123");
-
-			equal(testmask.value, "1-a/123", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-		test("email mask greedy false", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("email", {
-				greedy: false
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("some.body@mail.com");
-			testmask.blur();
-			equal(testmask.value, "some.body@mail.com", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-		asyncTest("email mask greedy true", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("email", {
-				greedy: true
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("some.body@mail.com");
-			testmask.blur();
-			setTimeout(function() {
-				start();
-				equal(testmask.value, "some.body@mail.com", "Result " + testmask.value);
-				$("#testmask").remove();
-			}, 0);
-		});
-
-		test("email mask - partial input", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("email").mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("some.");
-			testmask.blur();
-			equal(testmask.value, "some._@_", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("email mask - partial input 2", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("email").mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("some@mail.com");
-			$.caret(testmask, 4);
-			$("#testmask").Type(".body");
-			equal(testmask.value, "some.body@mail.com", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("email mask - babu@us.lufthansa.com - babupca", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("email").mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("babu@us.lufthansa.com");
-			equal(testmask.value, "babu@us.lufthansa.com", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("email mask - email@subdomain.domain.com - babupca", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("email").mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("email@subdomain.domain.com");
-			equal(testmask.value, "email@subdomain.domain.com", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		asyncTest("email mask - paste test.test@test.com - Kurumas", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("email").mask(testmask);
-
-			testmask.focus();
-			$("#testmask").paste("test.test@test.com");
-			setTimeout(function() {
-				equal(testmask.value, "test.test@test.com", "Result " + testmask.value);
-				start();
-				$("#testmask").remove();
-			}, 0);
-		});
-
-		test("quantifier mask greedy false - FairSite2C", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("9{0,4}", {
-				greedy: false
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("123");
-			equal(testmask.value, "123", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-		test("quantifier mask greedy true - FairSite2C", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("9{0,4}", {
-				greedy: true
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("123");
-			equal(testmask.value, "123", "Result " + testmask.value);
-
-			$("#testmask").remove();
-		});
-
-
-		asyncTest("email mask - clearIncomplete - hiddenman", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("email", {
-				clearIncomplete: true
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("akornilov");
-			testmask.blur();
-			setTimeout(function() {
-				equal(document.getElementById("testmask").inputmask._valueGet(), "", "Result " + document.getElementById("testmask").inputmask._valueGet());
-				start();
-				$("#testmask").remove();
-			}, 0);
-		});
-
-		asyncTest("email mask - clearIncomplete - hiddenman", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("email", {
-				clearIncomplete: true
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("akornilov@");
-			testmask.blur();
-			setTimeout(function() {
-				equal(document.getElementById("testmask").inputmask._valueGet(), "", "Result " + document.getElementById("testmask").inputmask._valueGet());
-				start();
-				$("#testmask").remove();
-			}, 0);
-		});
-
-		asyncTest("email mask - clearIncomplete - hiddenman", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("email", {
-				clearIncomplete: true
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("akornilov@gmail.com");
-			testmask.blur();
-			setTimeout(function() {
-				equal(document.getElementById("testmask").inputmask._valueGet(), "akornilov@gmail.com", "Result " + document.getElementById("testmask").inputmask._valueGet());
-				start();
-				$("#testmask").remove();
-			}, 0);
-		});
-
-		test("mask: '\\\\a{*}', repeat: 5 - voidmain02", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask({
-				mask: '\\\\a{*}',
-				repeat: 5
-			}).mask(testmask);
-
-			testmask.focus();
-			$("#testmask").Type("abcd abcd abcd abcd abcd");
-			equal(document.getElementById("testmask").inputmask._valueGet(), "\\abcd\\abcd\\abcd\\abcd\\abcd", "Result " + document.getElementById("testmask").inputmask._valueGet());
-			$("#testmask").remove();
-		});
+	qunit.module("Dynamic Masks");
+	qunit.test("inputmask(\"9-a{3}9{3}\" - simple dynamic mask", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("9-a{3}9{3}").mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("1abc123");
+
+		assert.equal(testmask.value, "1-abc123", "Result " + testmask.value);
+
+
+	});
+	qunit.test("inputmask(\"9-a{1,3}9{1,3}\" - simple dynamic mask", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("9-a{1,3}9{1,3}").mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("1a1");
+
+		assert.equal(testmask.value, "1-a1", "Result " + testmask.value);
+
+
+	});
+	qunit.test("inputmask(\"9-a{1,3}9{1,3}\" - simple dynamic mask - greedy false", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("9-a{1,3}9{1,3}", {
+			greedy: false
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("1a1");
+
+		assert.equal(testmask.value, "1-a1", "Result " + testmask.value);
+
+
+	});
+	qunit.test("inputmask(\"9-a{1,3}/9{2,3}\" - simple dynamic mask - greedy true", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("9-a{1,3}/9{2,3}", {
+			greedy: true
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("1a/123");
+
+		assert.equal(testmask.value, "1-a/123", "Result " + testmask.value);
+
+
+	});
+	qunit.test("email mask greedy false", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("email", {
+			greedy: false
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("some.body@mail.com");
+		testmask.blur();
+		assert.equal(testmask.value, "some.body@mail.com", "Result " + testmask.value);
+
+
+	});
+	qunit.test("email mask greedy true", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("email", {
+			greedy: true
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("some.body@mail.com");
+		testmask.blur();
+		setTimeout(function() {
+			assert.equal(testmask.value, "some.body@mail.com", "Result " + testmask.value);
+			done();
+		}, 0);
+	});
+
+	qunit.test("email mask - partial input", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("email").mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("some.");
+		testmask.blur();
+		assert.equal(testmask.value, "some._@_", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("email mask - partial input 2", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("email").mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("some@mail.com");
+		$.caret(testmask, 4);
+		$("#testmask").Type(".body");
+		assert.equal(testmask.value, "some.body@mail.com", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("email mask - babu@us.lufthansa.com - babupca", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("email").mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("babu@us.lufthansa.com");
+		assert.equal(testmask.value, "babu@us.lufthansa.com", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("email mask - email@subdomain.domain.com - babupca", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("email").mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("email@subdomain.domain.com");
+		assert.equal(testmask.value, "email@subdomain.domain.com", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("email mask - paste test.test@test.com - Kurumas", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("email").mask(testmask);
+
+		testmask.focus();
+		$("#testmask").paste("test.test@test.com");
+		setTimeout(function() {
+			assert.equal(testmask.value, "test.test@test.com", "Result " + testmask.value);
+			done();
+
+		}, 0);
+	});
+
+	qunit.test("quantifier mask greedy false - FairSite2C", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("9{0,4}", {
+			greedy: false
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("123");
+		assert.equal(testmask.value, "123", "Result " + testmask.value);
+
+
+	});
+
+	qunit.test("quantifier mask greedy true - FairSite2C", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("9{0,4}", {
+			greedy: true
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("123");
+		assert.equal(testmask.value, "123", "Result " + testmask.value);
+
+
+	});
+
+
+	qunit.test("email mask - clearIncomplete - hiddenman", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("email", {
+			clearIncomplete: true
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("akornilov");
+		testmask.blur();
+		setTimeout(function() {
+			assert.equal(document.getElementById("testmask").inputmask._valueGet(), "", "Result " + document.getElementById("testmask").inputmask._valueGet());
+			done();
+
+		}, 0);
+	});
+
+	qunit.test("email mask - clearIncomplete - hiddenman", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("email", {
+			clearIncomplete: true
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("akornilov@");
+		testmask.blur();
+		setTimeout(function() {
+			assert.equal(document.getElementById("testmask").inputmask._valueGet(), "", "Result " + document.getElementById("testmask").inputmask._valueGet());
+			done();
+
+		}, 0);
+	});
+
+	qunit.test("email mask - clearIncomplete - hiddenman", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("email", {
+			clearIncomplete: true
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("akornilov@gmail.com");
+		testmask.blur();
+		setTimeout(function() {
+			assert.equal(document.getElementById("testmask").inputmask._valueGet(), "akornilov@gmail.com", "Result " + document.getElementById("testmask").inputmask._valueGet());
+			done();
+
+		}, 0);
+	});
+
+	qunit.test("mask: '\\\\a{*}', repeat: 5 - voidmain02", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask({
+			mask: '\\\\a{*}',
+			repeat: 5
+		}).mask(testmask);
+
+		testmask.focus();
+		$("#testmask").Type("abcd abcd abcd abcd abcd");
+		assert.equal(document.getElementById("testmask").inputmask._valueGet(), "\\abcd\\abcd\\abcd\\abcd\\abcd", "Result " + document.getElementById("testmask").inputmask._valueGet());
+
+	});
+
+	qunit.test("[a{1,3}-]9999 - type abc1234 => delete c - ivodopyanov", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("[a{1,3}-]9999").mask(testmask);
+
+		$("#testmask").Type("abc1234");
+		$.caret(testmask, 2);
+		$("#testmask").SendKey(Inputmask.keyCode.DELETE);
+		assert.equal(document.getElementById("testmask").inputmask._valueGet(), "ab-1234", "Result " + document.getElementById("testmask").inputmask._valueGet());
+	});
 });

+ 73 - 75
qunit/tests_escape.js

@@ -10,108 +10,106 @@ define([
 	"prototypeExtensions",
 	"simulator"
 ], function(qunit, $, Inputmask) {
-		qunit.module("Escape character");
+	qunit.module("Escape character");
 
-		test("inputmask(\"9\\|9\")", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			var input = $("#testmask");
-			Inputmask("9\\|9").mask(testmask);
+	qunit.test("inputmask(\"9\\|9\")", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		var input = $("#testmask");
+		Inputmask("9\\|9").mask(testmask);
 
-			testmask.focus();
+		testmask.focus();
 
-			$("#testmask").Type("23");
-			equal(testmask.value, "2|3", "Result " + testmask.value);
+		$("#testmask").Type("23");
+		assert.equal(testmask.value, "2|3", "Result " + testmask.value);
+	});
 
-			$("#testmask").remove();
-		});
+	qunit.test("inputmask(\"9\\[9\\]\")", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		var input = $("#testmask");
+		Inputmask("9\\[9\\]").mask(testmask);
 
-		test("inputmask(\"9\\[9\\]\")", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			var input = $("#testmask");
-			Inputmask("9\\[9\\]").mask(testmask);
+		testmask.focus();
 
-			testmask.focus();
+		$("#testmask").Type("23");
+		assert.equal(testmask.value, "2[3]", "Result " + testmask.value);
 
-			$("#testmask").Type("23");
-			equal(testmask.value, "2[3]", "Result " + testmask.value);
 
-			$("#testmask").remove();
-		});
+	});
 
-		test("inputmask(\"9\\\\9\")", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			var input = $("#testmask");
-			Inputmask("9\\\\9").mask(testmask);
+	qunit.test("inputmask(\"9\\\\9\")", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		var input = $("#testmask");
+		Inputmask("9\\\\9").mask(testmask);
 
-			testmask.focus();
+		testmask.focus();
 
-			$("#testmask").Type("23");
-			equal(testmask.value, "2\\3", "Result " + testmask.value);
+		$("#testmask").Type("23");
+		assert.equal(testmask.value, "2\\3", "Result " + testmask.value);
 
-			$("#testmask").remove();
-		});
 
-		test("inputmask(\"9\\{9\\}\")", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("9\\{9\\}").mask(testmask);
+	});
 
-			testmask.focus();
+	qunit.test("inputmask(\"9\\{9\\}\")", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("9\\{9\\}").mask(testmask);
 
-			$("#testmask").Type("23");
-			equal(testmask.value, "2{3}", "Result " + testmask.value);
+		testmask.focus();
 
-			$("#testmask").remove();
-		});
+		$("#testmask").Type("23");
+		assert.equal(testmask.value, "2{3}", "Result " + testmask.value);
 
-		test("inputmask(\"9\\(9\\)\")", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("9\\(9\\)").mask(testmask);
 
-			testmask.focus();
+	});
 
-			$("#testmask").Type("23");
-			equal(testmask.value, "2(3)", "Result " + testmask.value);
+	qunit.test("inputmask(\"9\\(9\\)\")", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("9\\(9\\)").mask(testmask);
 
-			$("#testmask").remove();
-		});
+		testmask.focus();
 
+		$("#testmask").Type("23");
+		assert.equal(testmask.value, "2(3)", "Result " + testmask.value);
 
-		test("inputmask(\"9\\?9\")", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("9\\?9").mask(testmask);
 
-			testmask.focus();
+	});
 
-			$("#testmask").Type("23");
-			equal(testmask.value, "2?3", "Result " + testmask.value);
 
-			$("#testmask").remove();
-		});
+	qunit.test("inputmask(\"9\\?9\")", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("9\\?9").mask(testmask);
 
-		test("inputmask(\"\\9999\") value not mask", function() {
-			var $fixture = $("#qunit-fixture");
-			$fixture.append('<input type="text" value="999" id="testmask" />');
-			var testmask = document.getElementById("testmask");
-			Inputmask("\\9999", {
-				autoUnmask: true
-			}).mask(testmask);
+		testmask.focus();
 
-			testmask.focus();
+		$("#testmask").Type("23");
+		assert.equal(testmask.value, "2?3", "Result " + testmask.value);
 
-			equal(testmask.inputmask._valueGet(), "9999", "Result " + testmask.inputmask._valueGet());
 
-			$("#testmask").remove();
-		});
+	});
+
+	qunit.test("inputmask(\"\\9999\") value not mask", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" value="999" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("\\9999", {
+			autoUnmask: true
+		}).mask(testmask);
+
+		testmask.focus();
+
+		assert.equal(testmask.inputmask._valueGet(), "9999", "Result " + testmask.inputmask._valueGet());
+
+
+	});
 });

+ 54 - 54
qunit/tests_formatvalidate.js

@@ -11,31 +11,31 @@ define([
 	"simulator"
 ], function(qunit, $, Inputmask) {
 	qunit.module("Value formatting");
-	test("Inputmask.format(\"2331973\", { alias: \"date\"})", function() {
+	qunit.test("Inputmask.format(\"2331973\", { alias: \"date\"})", function(assert) {
 		var formattedValue = Inputmask.format("2331973", {
 			alias: "date"
 		});
-		equal(formattedValue, "23/03/1973", "Result " + formattedValue);
+		assert.equal(formattedValue, "23/03/1973", "Result " + formattedValue);
 	});
 
-	test("Inputmask.format(\"016501030020001DE1015170\", { mask: \"99 999 999 999 9999 \\D\\E*** 9999\"})", function() {
+	qunit.test("Inputmask.format(\"016501030020001DE1015170\", { mask: \"99 999 999 999 9999 \\D\\E*** 9999\"})", function(assert) {
 		var formattedValue = Inputmask.format("016501030020001DE1015170", {
 			mask: "99 999 999 999 9999 \\D\\E*** 9999"
 		});
-		equal(formattedValue, "01 650 103 002 0001 DE101 5170", "Result " + formattedValue);
+		assert.equal(formattedValue, "01 650 103 002 0001 DE101 5170", "Result " + formattedValue);
 	});
 
-	test("Inputmask.format(\"12\", {  mask: \"$ 999999\", numericInput: true, placeholder: \"0\" }); - gigermocas", function() {
+	qunit.test("Inputmask.format(\"12\", {  mask: \"$ 999999\", numericInput: true, placeholder: \"0\" }); - gigermocas", function(assert) {
 		var formattedValue = Inputmask.format("12", {
 			mask: "$ 999999",
 			numericInput: true,
 			placeholder: "0"
 		});
-		equal(formattedValue, "$ 000012", "Result " + formattedValue);
+		assert.equal(formattedValue, "$ 000012", "Result " + formattedValue);
 	});
 
 
-	test("Inputmask.format(\"1111111.11\" - ... autoGroup: true - swd120", function() {
+	qunit.test("Inputmask.format(\"1111111.11\" - ... autoGroup: true - swd120", function(assert) {
 		var formattedValue = Inputmask.format("1111111.11", {
 			alias: "decimal",
 			radixPoint: ".",
@@ -45,187 +45,187 @@ define([
 			groupSize: 3,
 			allowMinus: true
 		});
-		equal(formattedValue, "1,111,111.11", "Result " + formattedValue);
+		assert.equal(formattedValue, "1,111,111.11", "Result " + formattedValue);
 	});
 
-	test("Inputmask.format(phone, { mask: '(999) 999-9999' })); - krivaten", function() {
+	qunit.test("Inputmask.format(phone, { mask: '(999) 999-9999' })); - krivaten", function(assert) {
 		var phone = '5551112222';
 		var formattedValue = Inputmask.format(phone, {
 			mask: '(999) 999-9999'
 		});
-		equal(formattedValue, "(555) 111-2222", "Result " + formattedValue);
+		assert.equal(formattedValue, "(555) 111-2222", "Result " + formattedValue);
 	});
 
 
 	qunit.module("Value Validating");
-	test("Inputmask.isValid(\"23/03/1973\", { alias: \"date\"})", function() {
+	qunit.test("Inputmask.isValid(\"23/03/1973\", { alias: \"date\"})", function(assert) {
 		var isValid = Inputmask.isValid("23/03/1973", {
 			alias: "date"
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("Inputmask.isValid(\"01 650 103 002 0001 DE101 5170\", { mask: \"99 999 999 999 9999 \\D\\E*** 9999\"})", function() {
+	qunit.test("Inputmask.isValid(\"01 650 103 002 0001 DE101 5170\", { mask: \"99 999 999 999 9999 \\D\\E*** 9999\"})", function(assert) {
 		var isValid = Inputmask.isValid("01 650 103 002 0001 DE101 5170", {
 			mask: "99 999 999 999 9999 \\D\\E*** 9999"
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("Inputmask.isValid email => false", function() {
+	qunit.test("Inputmask.isValid email => false", function(assert) {
 		var isValid = Inputmask.isValid("some.body@mail.c", {
 			alias: "email"
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("Inputmask.isValid email => true", function() {
+	qunit.test("Inputmask.isValid email => true", function(assert) {
 		var isValid = Inputmask.isValid("some.body@mail.com", {
 			alias: "email"
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("Inputmask.isValid email greedy => false", function() {
+	qunit.test("Inputmask.isValid email greedy => false", function(assert) {
 		var isValid = Inputmask.isValid("some.body@mail.c", {
 			alias: "email",
 			greedy: true
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("Inputmask.isValid email greedy => true", function() {
+	qunit.test("Inputmask.isValid email greedy => true", function(assert) {
 		var isValid = Inputmask.isValid("some.body@mail.com", {
 			alias: "email",
 			greedy: true
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("YoussefTaghlabi isValid(\"100\", { alias: \"integer\" }", function() {
+	qunit.test("YoussefTaghlabi isValid(\"100\", { alias: \"integer\" }", function(assert) {
 		var isValid = Inputmask.isValid("100", {
 			alias: "integer"
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
-	test("YoussefTaghlabi isValid(\"100.00\", { alias: \"integer\" }", function() {
+	qunit.test("YoussefTaghlabi isValid(\"100.00\", { alias: \"integer\" }", function(assert) {
 		var isValid = Inputmask.isValid("100.00", {
 			alias: "integer"
 		});
-		equal(isValid, false, "Result " + isValid);
+		assert.equal(isValid, false, "Result " + isValid);
 	});
-	test("YoussefTaghlabi isValid(\"123\", { alias: \"decimal\" }", function() {
+	qunit.test("YoussefTaghlabi isValid(\"123\", { alias: \"decimal\" }", function(assert) {
 		var isValid = Inputmask.isValid("123", {
 			alias: "decimal"
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
-	test("YoussefTaghlabi isValid(\"123.45\", { alias: \"decimal\" }", function() {
+	qunit.test("YoussefTaghlabi isValid(\"123.45\", { alias: \"decimal\" }", function(assert) {
 		var isValid = Inputmask.isValid("123.45", {
 			alias: "decimal"
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
-	test("YoussefTaghlabi isValid(\"123456.78\", { alias: \"decimal\" }", function() {
+	qunit.test("YoussefTaghlabi isValid(\"123456.78\", { alias: \"decimal\" }", function(assert) {
 		var isValid = Inputmask.isValid("123456.78", {
 			alias: "decimal"
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
-	test("YoussefTaghlabi isValid(\"123,456.78\", { alias: \"decimal\" }", function() {
+	qunit.test("YoussefTaghlabi isValid(\"123,456.78\", { alias: \"decimal\" }", function(assert) {
 		var isValid = Inputmask.isValid("123,456.78", {
 			alias: "decimal",
 			radixPoint: ".",
 			groupSeparator: ",",
 			groupSize: 3
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
-	test("YoussefTaghlabi isValid(\"12,\", { alias: \"decimal\" }", function() {
+	qunit.test("YoussefTaghlabi isValid(\"12,\", { alias: \"decimal\" }", function(assert) {
 		var isValid = Inputmask.isValid("12,", {
 			alias: "decimal",
 			radixPoint: ".",
 			groupSeparator: ",",
 			groupSize: 3
 		});
-		equal(isValid, false, "Result " + isValid);
+		assert.equal(isValid, false, "Result " + isValid);
 	});
-	test("YoussefTaghlabi isValid(\"12,1.45\", { alias: \"decimal\" }", function() {
+	qunit.test("YoussefTaghlabi isValid(\"12,1.45\", { alias: \"decimal\" }", function(assert) {
 		var isValid = Inputmask.isValid("12,1.45", {
 			alias: "decimal",
 			radixPoint: ".",
 			groupSeparator: ",",
 			groupSize: 3
 		});
-		equal(isValid, false, "Result " + isValid);
+		assert.equal(isValid, false, "Result " + isValid);
 	});
-	test("YoussefTaghlabi isValid(\"12,345.67\", { alias: \"decimal\" }", function() {
+	qunit.test("YoussefTaghlabi isValid(\"12,345.67\", { alias: \"decimal\" }", function(assert) {
 		var isValid = Inputmask.isValid("12,345.67", {
 			alias: "decimal",
 			radixPoint: ".",
 			groupSeparator: ",",
 			groupSize: 3
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("thomstark isValid(\"12lbs\", {mask:\"99[9]lb\\s\", greedy:false, skipOptionalPartCharacter: \"\", \"clearIncomplete\":true}", function() {
+	qunit.test("thomstark isValid(\"12lbs\", {mask:\"99[9]lb\\s\", greedy:false, skipOptionalPartCharacter: \"\", \"clearIncomplete\":true}", function(assert) {
 		var isValid = Inputmask.isValid("12lbs", {
 			mask: "99[9]lb\\s",
 			greedy: false,
 			skipOptionalPartCharacter: "",
 			"clearIncomplete": true
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("thomstark isValid(\"1'2\"\", {mask:\"9'9[9]\"\", greedy:false, skipOptionalPartCharacter: \"\", \"clearIncomplete\":true}", function() {
+	qunit.test("thomstark isValid(\"1'2\"\", {mask:\"9'9[9]\"\", greedy:false, skipOptionalPartCharacter: \"\", \"clearIncomplete\":true}", function(assert) {
 		var isValid = Inputmask.isValid("1'2\"", {
 			mask: "9'9[9]\"",
 			greedy: false,
 			skipOptionalPartCharacter: "",
 			"clearIncomplete": true
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("thomstark isValid(\"12lbs\", {mask:\"99{1,2}lb\\s\", greedy:false, skipOptionalPartCharacter: \"\", \"clearIncomplete\":true}", function() {
+	qunit.test("thomstark isValid(\"12lbs\", {mask:\"99{1,2}lb\\s\", greedy:false, skipOptionalPartCharacter: \"\", \"clearIncomplete\":true}", function(assert) {
 		var isValid = Inputmask.isValid("12lbs", {
 			mask: "99{1,2}lb\\s",
 			greedy: false,
 			skipOptionalPartCharacter: "",
 			"clearIncomplete": true
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("thomstark isValid(\"9'9{1,2}\", {mask:\"9'9[9]\"\", greedy:false, skipOptionalPartCharacter: \"\", \"clearIncomplete\":true}", function() {
+	qunit.test("thomstark isValid(\"9'9{1,2}\", {mask:\"9'9[9]\"\", greedy:false, skipOptionalPartCharacter: \"\", \"clearIncomplete\":true}", function(assert) {
 		var isValid = Inputmask.isValid("1'2\"", {
 			mask: "9'9{1,2}\"",
 			greedy: false,
 			skipOptionalPartCharacter: "",
 			"clearIncomplete": true
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("a13x3y isValid(\"some_body@mail.com\", {alias:\"email\"}", function() {
+	qunit.test("a13x3y isValid(\"some_body@mail.com\", {alias:\"email\"}", function(assert) {
 		var isValid = Inputmask.isValid("some_body@mail.com", {
 			alias: "email"
 		});
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
-	test("Inputmask(\"99-99[ 99/99]\").isValid(\"03-11\") - pricejt", function() {
+	qunit.test("Inputmask(\"99-99[ 99/99]\").isValid(\"03-11\") - pricejt", function(assert) {
 		var isValid = Inputmask("99-99[ 99/99]").isValid("03-11");
-		equal(isValid, true, "Result " + isValid);
+		assert.equal(isValid, true, "Result " + isValid);
 	});
 
 	qunit.module("Value unmasking");
-	test("inputmask.unmask(\"23/03/1973\", { alias: \"dd/mm/yyyy\" })", function() {
+	qunit.test("inputmask.unmask(\"23/03/1973\", { alias: \"dd/mm/yyyy\" })", function(assert) {
 		var unmasked = Inputmask.unmask("23/03/1973", {
 			alias: "dd/mm/yyyy"
 		});
-		equal(unmasked, "23031973", "Result " + unmasked);
+		assert.equal(unmasked, "23031973", "Result " + unmasked);
 	});
 });

+ 136 - 136
qunit/tests_initialvalue.js

@@ -11,167 +11,167 @@ define([
 	"simulator"
 ], function(qunit, $, Inputmask) {
 
-qunit.module("Initial value setting");
+	qunit.module("Initial value setting");
 
-test("inputmask(\"999:99\", { placeholder: \"0\"}) value=\"007:20\"", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="007:20" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("999:99", {
-		placeholder: "0"
-	}).mask(testmask);
+	qunit.test("inputmask(\"999:99\", { placeholder: \"0\"}) value=\"007:20\"", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="007:20" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("999:99", {
+			placeholder: "0"
+		}).mask(testmask);
 
-	equal(testmask.value, "007:20", "Result " + testmask.value);
+		assert.equal(testmask.value, "007:20", "Result " + testmask.value);
 
-	$("#testmask").remove();
-});
-
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"01 650 103 002 0001 DE101 5170\" - wuSam", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="01 650 103 002 0001 DE101 5170" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("99 999 999 999 9999 \\D\\E*** 9999").mask(testmask);
-	equal(testmask.value, "01 650 103 002 0001 DE101 5170", "Result " + testmask.value);
-
-	$("#testmask").remove();
-});
+		$("#testmask").remove();
+	});
 
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" - wuSam", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("99 999 999 999 9999 \\D\\E*** 9999").mask(testmask);
-	equal(testmask.value, "01 650 103 002 0001 DE101 5170", "Result " + testmask.value);
+	qunit.test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"01 650 103 002 0001 DE101 5170\" - wuSam", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="01 650 103 002 0001 DE101 5170" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("99 999 999 999 9999 \\D\\E*** 9999").mask(testmask);
+		assert.equal(testmask.value, "01 650 103 002 0001 DE101 5170", "Result " + testmask.value);
 
-	$("#testmask").remove();
-});
+		$("#testmask").remove();
+	});
 
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 2 with 3 - wuSam", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("99 999 999 999 9999 \\D\\E*** 9999").mask(testmask);
-	$.caret(testmask, 13, 14);
-	$("#testmask").Type("3");
-	equal(testmask.value, "01 650 103 003 0001 DE101 5170", "Result " + testmask.value);
+	qunit.test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" - wuSam", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("99 999 999 999 9999 \\D\\E*** 9999").mask(testmask);
+		assert.equal(testmask.value, "01 650 103 002 0001 DE101 5170", "Result " + testmask.value);
 
-	$("#testmask").remove();
-});
+		$("#testmask").remove();
+	});
 
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 002 with 003 - wuSam", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("99 999 999 999 9999 \\D\\E*** 9999").mask(testmask);
-	$.caret(testmask, 11, 14);
-	$("#testmask").Type("003");
-	equal(testmask.value, "01 650 103 003 0001 DE101 5170", "Result " + testmask.value);
+	qunit.test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 2 with 3 - wuSam", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("99 999 999 999 9999 \\D\\E*** 9999").mask(testmask);
+		$.caret(testmask, 13, 14);
+		$("#testmask").Type("3");
+		assert.equal(testmask.value, "01 650 103 003 0001 DE101 5170", "Result " + testmask.value);
 
-	$("#testmask").remove();
-});
+		$("#testmask").remove();
+	});
 
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 02 with 01 - wuSam", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("99 999 999 999 9999 \\D\\E*** 9999").mask(testmask);
-	$.caret(testmask, 12, 14);
-	$("#testmask").Type("01");
-	equal(testmask.value, "01 650 103 001 0001 DE101 5170", "Result " + testmask.value);
+	qunit.test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 002 with 003 - wuSam", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("99 999 999 999 9999 \\D\\E*** 9999").mask(testmask);
+		$.caret(testmask, 11, 14);
+		$("#testmask").Type("003");
+		assert.equal(testmask.value, "01 650 103 003 0001 DE101 5170", "Result " + testmask.value);
 
-	$("#testmask").remove();
-});
+		$("#testmask").remove();
+	});
 
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\", { greedy: false }) ~ value=\"016501030020001DE1015170\" replace 02 with 01 - wuSam", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("99 999 999 999 9999 \\D\\E*** 9999", {
-		greedy: false
-	}).mask(testmask);
-	$.caret(testmask, 12, 14);
-	$("#testmask").Type("01");
-	equal(testmask.value, "01 650 103 001 0001 DE101 5170", "Result " + testmask.value);
-
-	$("#testmask").remove();
-});
+	qunit.test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 02 with 01 - wuSam", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("99 999 999 999 9999 \\D\\E*** 9999").mask(testmask);
+		$.caret(testmask, 12, 14);
+		$("#testmask").Type("01");
+		assert.equal(testmask.value, "01 650 103 001 0001 DE101 5170", "Result " + testmask.value);
 
+		$("#testmask").remove();
+	});
+
+	qunit.test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\", { greedy: false }) ~ value=\"016501030020001DE1015170\" replace 02 with 01 - wuSam", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("99 999 999 999 9999 \\D\\E*** 9999", {
+			greedy: false
+		}).mask(testmask);
+		$.caret(testmask, 12, 14);
+		$("#testmask").Type("01");
+		assert.equal(testmask.value, "01 650 103 001 0001 DE101 5170", "Result " + testmask.value);
 
-test("inputmask(\"\\D\\E***\") ~ value=\"DE001\" - wuSam", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="DE001" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("\\D\\E***").mask(testmask);
-	equal(testmask.value, "DE001", "Result " + testmask.value);
+		$("#testmask").remove();
+	});
 
-	$("#testmask").remove();
-});
 
-test("inputmask(\"decimal\") ~ value=\"123.45\"", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="123.45" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("decimal").mask(testmask);
-	equal(testmask.value, "123.45", "Result " + testmask.value);
+	qunit.test("inputmask(\"\\D\\E***\") ~ value=\"DE001\" - wuSam", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="DE001" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("\\D\\E***").mask(testmask);
+		assert.equal(testmask.value, "DE001", "Result " + testmask.value);
 
-	$("#testmask").remove();
-});
+		$("#testmask").remove();
+	});
 
-test("inputmask(\"decimal\") ~ value=\"123.45\" - disabled input", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="123.45" disabled="disabled" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("decimal").mask(testmask);
-	equal(testmask.value, "123.45", "Result " + testmask.value);
+	qunit.test("inputmask(\"decimal\") ~ value=\"123.45\"", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="123.45" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("decimal").mask(testmask);
+		assert.equal(testmask.value, "123.45", "Result " + testmask.value);
 
-	$("#testmask").remove();
-});
+		$("#testmask").remove();
+	});
 
-test("inputmask(\"mm/yyyy\") ~ value=\"031973\" - disabled input", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="031973" disabled="disabled" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("mm/yyyy").mask(testmask);
-	equal(testmask.value, "03/1973", "Result " + testmask.value);
+	qunit.test("inputmask(\"decimal\") ~ value=\"123.45\" - disabled input", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="123.45" disabled="disabled" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("decimal").mask(testmask);
+		assert.equal(testmask.value, "123.45", "Result " + testmask.value);
 
-	$("#testmask").remove();
-});
+		$("#testmask").remove();
+	});
 
-test("inputmask(\"6703 9999 9999 9999 9\") ~ value=\"6703 1234 5678 9012 3\" - FransVdb", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" value="6703 1234 5678 9012 3" />');
-	Inputmask("6703 9999 9999 9999 9");
-	equal(testmask.value, "6703 1234 5678 9012 3", "Result " + testmask.value);
-	$("#testmask").remove();
-});
+	qunit.test("inputmask(\"mm/yyyy\") ~ value=\"031973\" - disabled input", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="031973" disabled="disabled" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("mm/yyyy").mask(testmask);
+		assert.equal(testmask.value, "03/1973", "Result " + testmask.value);
 
-test("inputmask(\"6703 9999 9999 9999 9\") ~ type \"6703 1234 5678 9012 3\" + backspace - FransVdb", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("6703 9999 9999 9999 9").mask(testmask);
-	testmask.focus();
-	$("#testmask").Type("1234567890123");
-	$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
+		$("#testmask").remove();
+	});
 
-	equal(testmask.value, "6703 1234 5678 9012 _", "Result " + testmask.value);
+	qunit.test("inputmask(\"6703 9999 9999 9999 9\") ~ value=\"6703 1234 5678 9012 3\" - FransVdb", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" value="6703 1234 5678 9012 3" />');
+		Inputmask("6703 9999 9999 9999 9");
+		assert.equal(testmask.value, "6703 1234 5678 9012 3", "Result " + testmask.value);
+		$("#testmask").remove();
+	});
+
+	qunit.test("inputmask(\"6703 9999 9999 9999 9\") ~ type \"6703 1234 5678 9012 3\" + backspace - FransVdb", function(assert) {
+		var $fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("6703 9999 9999 9999 9").mask(testmask);
+		testmask.focus();
+		$("#testmask").Type("1234567890123");
+		$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
 
-	$("#testmask").remove();
-});
+		assert.equal(testmask.value, "6703 1234 5678 9012 _", "Result " + testmask.value);
 
-asyncTest("inputmask(\"6703 9999 9999 9999 9\") ~ type \"6703670367036\" + backspace - FransVdb", function() {
-	var $fixture = $("#qunit-fixture");
-	$fixture.append('<input type="text" id="testmask" />');
-	var testmask = document.getElementById("testmask");
-	Inputmask("6703 9999 9999 9999 9").mask(testmask);
-	testmask.focus();
-	$("#testmask").trigger("click");
-	setTimeout(function() {
-		$("#testmask").Type("6703670367036");
-		$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
-		equal(testmask.value, "6703 6703 6703 6703 _", "Result " + testmask.value);
-		start();
 		$("#testmask").remove();
-	}, 0);
-});
+	});
+
+	qunit.test("inputmask(\"6703 9999 9999 9999 9\") ~ type \"6703670367036\" + backspace - FransVdb", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		Inputmask("6703 9999 9999 9999 9").mask(testmask);
+		testmask.focus();
+		$("#testmask").trigger("click");
+		setTimeout(function() {
+			$("#testmask").Type("6703670367036");
+			$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
+			assert.equal(testmask.value, "6703 6703 6703 6703 _", "Result " + testmask.value);
+			done();
+		}, 0);
+	});
 });

+ 79 - 72
qunit/tests_ip.js

@@ -2,94 +2,101 @@ define([
 	"qunit",
 	"inputmask.dependencyLib",
 	"inputmask",
-	"../dist/inputmask/inputmask.date.extensions",
 	"../dist/inputmask/inputmask.extensions",
-	"../dist/inputmask/inputmask.numeric.extensions",
-	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function(qunit, $, Inputmask) {
 
-  qunit.module("IP - masks");
-asyncTest("inputmask(\"ip\" - 10.10.10.10", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-var testmask = document.getElementById("testmask");
-    $fixture.append('<input type="text" id="testmask2" />');
+	qunit.module("IP - masks");
+	qunit.test("inputmask(\"ip\" - 10.10.10.10", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		$fixture.append('<input type="text" id="testmask2" />');
 		var testmask2 = document.getElementById("testmask2");
-    Inputmask("ip").mask(testmask);
+		Inputmask("ip").mask(testmask);
 
-    testmask.focus();
-    $("#testmask").Type("10.10.10.10");
-    testmask2.focus();
-    setTimeout(function () {
-        start();
-        equal(testmask.value, "10.10.10.10", "Result " + testmask.value);
+		testmask.focus();
+		$("#testmask").Type("10.10.10.10");
+		testmask2.focus();
+		setTimeout(function() {
+			assert.equal(testmask.value, "10.10.10.10", "Result " + testmask.value);
+			done();
+		}, 0);
+	});
 
-        $("#testmask").remove();
-        $("#testmask2").remove();
-    }, 0);
-});
-
-asyncTest("inputmask(\"ip\" - 1.1.1.1", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-var testmask = document.getElementById("testmask");
-    $fixture.append('<input type="text" id="testmask2" />');
+	qunit.test("inputmask(\"ip\" - 1.1.1.1", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		$fixture.append('<input type="text" id="testmask2" />');
 		var testmask2 = document.getElementById("testmask2");
-    Inputmask("ip").mask(testmask);
+		Inputmask("ip").mask(testmask);
 
-    testmask.focus();
-    $("#testmask").Type("1.1.1.1");
-  testmask2.focus();
-    setTimeout(function () {
-        start();
-        equal(testmask.value, "1.1.1.1", "Result " + testmask.value);
-
-        $("#testmask").remove();
-        $("#testmask2").remove();
-    }, 0);
-});
+		testmask.focus();
+		$("#testmask").Type("1.1.1.1");
+		testmask2.focus();
+		setTimeout(function() {
+			assert.equal(testmask.value, "1.1.1.1", "Result " + testmask.value);
+			done();
+		}, 0);
+	});
 
-asyncTest("inputmask(\"ip\" - 255.255.255.255", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-var testmask = document.getElementById("testmask");
-    $fixture.append('<input type="text" id="testmask2" />');
+	qunit.test("inputmask(\"ip\" - 255.255.255.255", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		$fixture.append('<input type="text" id="testmask2" />');
 		var testmask2 = document.getElementById("testmask2");
-    Inputmask("ip").mask(testmask);
+		Inputmask("ip").mask(testmask);
 
-    testmask.focus();
-    $("#testmask").Type("255.255.255.255");
-    setTimeout(function () {
-        start();
-        testmask2.focus();
-        equal(testmask.value, "255.255.255.255", "Result " + testmask.value);
+		testmask.focus();
+		$("#testmask").Type("255.255.255.255");
+		setTimeout(function() {
+			testmask2.focus();
+			assert.equal(testmask.value, "255.255.255.255", "Result " + testmask.value);
+			done();
+		}, 0);
+	});
 
-        $("#testmask").remove();
-        $("#testmask2").remove();
-    }, 0);
-});
-
-asyncTest("inputmask(\"ip\" - 192.168.1.100", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-var testmask = document.getElementById("testmask");
-    $fixture.append('<input type="text" id="testmask2" />');
+	qunit.test("inputmask(\"ip\" - 192.168.1.100", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		$fixture.append('<input type="text" id="testmask2" />');
 		var testmask2 = document.getElementById("testmask2");
-    Inputmask("ip").mask(testmask);
+		Inputmask("ip").mask(testmask);
 
-    testmask.focus();
-    $("#testmask").Type("192.168.1.100");
-    testmask2.focus();
-    setTimeout(function () {
-        start();
-        equal(testmask.value, "192.168.1.100", "Result " + testmask.value);
+		testmask.focus();
+		$("#testmask").Type("192.168.1.100");
+		testmask2.focus();
+		setTimeout(function() {
+			assert.equal(testmask.value, "192.168.1.100", "Result " + testmask.value);
+			done();
+		}, 0);
+	});
 
-        $("#testmask").remove();
-        $("#testmask2").remove();
-    }, 0);
-});
+	qunit.test("inputmask(\"ip\" - 123123123123 - delete 2nd 1 - ", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
+		$fixture.append('<input type="text" id="testmask" />');
+		var testmask = document.getElementById("testmask");
+		$fixture.append('<input type="text" id="testmask2" />');
+		var testmask2 = document.getElementById("testmask2");
+		Inputmask("ip").mask(testmask);
 
+		testmask.focus();
+		$("#testmask").Type("123123123123");
+		testmask2.focus();
+		$.caret(testmask, 4);
+		$("#testmask").SendKey(Inputmask.keyCode.DELETE);
+		setTimeout(function() {
+			assert.equal(testmask.value, "123.23.123.123", "Result " + testmask.value);
+			done();
+		}, 0);
+	});
 });

File diff suppressed because it is too large
+ 293 - 293
qunit/tests_numeric.js


+ 88 - 85
qunit/tests_numericinput.js

@@ -12,8 +12,9 @@ define([
 ], function(qunit, $, Inputmask) {
 
 	qunit.module("Direction RTL");
-	asyncTest("inputmask(\"999.999.999\") - delete 2nd with backspace, continue the mask", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask(\"999.999.999\") - delete 2nd with backspace, continue the mask", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" dir="rtl" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask("999.999.999").mask(testmask);
@@ -31,15 +32,15 @@ define([
 			$("#testmask").SendKey(Inputmask.keyCode.LEFT);
 			$("#testmask").SendKey("5");
 			$("#testmask").SendKey("6");
-			start();
-			equal(testmask.value, "___._65.341", "Result " + testmask.value);
+			assert.equal(testmask.value, "___._65.341", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
-	asyncTest("inputmask(\"999.999.999\") - delete 2nd with delete, continue the mask", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask(\"999.999.999\") - delete 2nd with delete, continue the mask", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" dir="rtl" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask("999.999.999").mask(testmask);
@@ -56,15 +57,15 @@ define([
 			$("#testmask").SendKey(Inputmask.keyCode.LEFT);
 			$("#testmask").SendKey("5");
 			$("#testmask").SendKey("6");
-			start();
-			equal(testmask.value, "___._65.341", "Result " + testmask.value);
+			assert.equal(testmask.value, "___._65.341", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
-	asyncTest("inputmask(\"999-aaa-999\")", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask(\"999-aaa-999\")", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" dir="rtl" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask("999-aaa-999").mask(testmask);
@@ -72,15 +73,15 @@ define([
 		testmask.focus();
 		setTimeout(function() {
 			$("#testmask").Type("123abc12");
-			start();
-			equal(testmask.value, "_21-cba-321", "Result " + testmask.value);
+			assert.equal(testmask.value, "_21-cba-321", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
-	asyncTest("inputmask(\"999-999-999\") - replace selection", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask(\"999-999-999\") - replace selection", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" dir="rtl" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask("999-999-999").mask(testmask);
@@ -90,15 +91,15 @@ define([
 			$("#testmask").Type("123456789");
 			$.caret(testmask, 4, 7);
 			$("#testmask").Type("5");
-			start();
-			equal(testmask.value, "__9-875-321", "Result " + testmask.value);
+			assert.equal(testmask.value, "__9-875-321", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
-	asyncTest("inputmask(\"999-999-999\") - replace selection with backspace", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask(\"999-999-999\") - replace selection with backspace", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" dir="rtl" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask("999-999-999").mask(testmask);
@@ -109,15 +110,15 @@ define([
 			$.caret(testmask, 4, 7);
 			$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
 			$("#testmask").Type("5");
-			start();
-			equal(testmask.value, "__9-875-321", "Result " + testmask.value);
+			assert.equal(testmask.value, "__9-875-321", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
-	asyncTest("inputmask(\"999-999-999\") - replace selection - with delete", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask(\"999-999-999\") - replace selection - with delete", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" dir="rtl" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask("999-999-999").mask(testmask);
@@ -128,16 +129,16 @@ define([
 			$.caret(testmask, 4, 7);
 			$("#testmask").SendKey(Inputmask.keyCode.DELETE);
 			$("#testmask").Type("5");
-			start();
-			equal(testmask.value, "__9-875-321", "Result " + testmask.value);
+			assert.equal(testmask.value, "__9-875-321", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
 	qunit.module("Numeric Input");
-	asyncTest("inputmask({ mask: \"9\", numericInput: true, repeat: 10, greedy: true }); - 1234567890", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask({ mask: \"9\", numericInput: true, repeat: 10, greedy: true }); - 1234567890", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask({
@@ -150,14 +151,14 @@ define([
 		testmask.focus();
 		setTimeout(function() {
 			$("#testmask").Type("1234567890");
-			start();
-			equal(testmask.value, "1234567890", "Result " + testmask.value);
+			assert.equal(testmask.value, "1234567890", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
-	asyncTest("inputmask({ mask: \"9\", numericInput: true, repeat: 10, greedy: true }); - replace selection", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask({ mask: \"9\", numericInput: true, repeat: 10, greedy: true }); - replace selection", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask({
@@ -172,15 +173,15 @@ define([
 			$("#testmask").Type("1234567890");
 			$.caret(testmask, 3, 6);
 			$("#testmask").Type("5");
-			start();
-			equal(testmask.value, "__12357890", "Result " + testmask.value);
+			assert.equal(testmask.value, "__12357890", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
-	asyncTest("inputmask({ mask: \"99-99-99\", numericInput: true }); - 1234567890", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask({ mask: \"99-99-99\", numericInput: true }); - 1234567890", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask({
@@ -191,15 +192,15 @@ define([
 		testmask.focus();
 		setTimeout(function() {
 			$("#testmask").Type("1234567890");
-			start();
-			equal(testmask.value, "12-34-56", "Result " + testmask.value);
+			assert.equal(testmask.value, "12-34-56", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
-	asyncTest("inputmask({ mask: \"€ 999.999.999,99\", numericInput: true }); - 123", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask({ mask: \"€ 999.999.999,99\", numericInput: true }); - 123", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask('€ 999.999.999,99', {
@@ -209,15 +210,15 @@ define([
 		testmask.focus();
 		setTimeout(function() {
 			$("#testmask").Type("123");
-			start();
-			equal(testmask.value, "€ ___.___.__1,23", "Result " + testmask.value);
+			assert.equal(testmask.value, "€ ___.___.__1,23", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
-	asyncTest("inputmask({ mask: \"€ 999.999.999,99\", numericInput: true }); - 123 position before 456", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask({ mask: \"€ 999.999.999,99\", numericInput: true }); - 123 position before 456", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask('€ 999.999.999,99', {
@@ -229,15 +230,15 @@ define([
 			$("#testmask").Type("123");
 			$.caret(testmask, 12);
 			$("#testmask").Type("456");
-			start();
-			equal(testmask.value, "€ ___.__4.561,23", "Result " + testmask.value);
+			assert.equal(testmask.value, "€ ___.__4.561,23", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
-	asyncTest("inputmask({ mask: \"€ 999.999.999,99\", { numericInput: true, radixPoint: \",\" }); - 123", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask({ mask: \"€ 999.999.999,99\", { numericInput: true, radixPoint: \",\" }); - 123", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask('€ 999.999.999,99', {
@@ -250,14 +251,15 @@ define([
 		setTimeout(function() {
 			$("#testmask").Type("123");
 
-			equal(testmask.value, "€ ___.___.__1,23", "Result " + testmask.value);
-			start();
-			$("#testmask").remove();
+			assert.equal(testmask.value, "€ ___.___.__1,23", "Result " + testmask.value);
+			done();
+
 		}, 0);
 	});
 
-	asyncTest("inputmask({ mask: \"€ 999.999.999,99\", { numericInput: true, radixPoint: \",\" }); - 123,45", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask({ mask: \"€ 999.999.999,99\", { numericInput: true, radixPoint: \",\" }); - 123,45", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask('€ 999.999.999,99', {
@@ -270,14 +272,15 @@ define([
 		setTimeout(function() {
 			$("#testmask").Type("123,45");
 
-			equal(testmask.value, "€ ___.___.123,45", "Result " + testmask.value);
-			start();
-			$("#testmask").remove();
+			assert.equal(testmask.value, "€ ___.___.123,45", "Result " + testmask.value);
+			done();
+
 		}, 0);
 	});
 
-	asyncTest("inputmask({ mask: \"9999 t\", { numericInput: true }); - 123 - Joe Rosa", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask({ mask: \"9999 t\", { numericInput: true }); - 123 - Joe Rosa", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask('9999 t', {
@@ -288,15 +291,15 @@ define([
 		$("#testmask").trigger("click");;
 		setTimeout(function() {
 			$("#testmask").Type("123");
-			start();
-			equal(testmask.value, "_123 t", "Result " + testmask.value);
+			assert.equal(testmask.value, "_123 t", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
-	asyncTest("inputmask({ mask: \"9999 t\", { numericInput: true, autoUnmask: true }); - 70  - Joe Rosa", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask({ mask: \"9999 t\", { numericInput: true, autoUnmask: true }); - 70  - Joe Rosa", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask('9999 t', {
@@ -308,27 +311,28 @@ define([
 		$("#testmask").trigger("click");;
 		setTimeout(function() {
 			$("#testmask").Type("70");
-			start();
-			equal(testmask.value, "70", "Result " + testmask.value);
+			assert.equal(testmask.value, "70", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});
 
-	asyncTest("inputmask({ mask: \"['$9.99', '$99.99', '$999.99', '$9,999.99', '$99,999.99', '$999,999.99', '$9,999,999.99', '$99,999,999.99', '$999,999,999.99'], 'placeholder': ' ', 'numericInput': true, 'rightAlignNumerics': false\" value=\"$100000.00\"", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("inputmask({ mask: \"['$9.99', '$99.99', '$999.99', '$9,999.99', '$99,999.99', '$999,999.99', '$9,999,999.99', '$99,999,999.99', '$999,999,999.99'], 'placeholder': ' ', 'numericInput': true, 'rightAlignNumerics': false\" value=\"$100000.00\"", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append("<input type=\"text\" id=\"testmask\" data-inputmask=\"'mask': ['$9.99', '$99.99', '$999.99', '$9,999.99', '$99,999.99', '$999,999.99', '$9,999,999.99', '$99,999,999.99', '$999,999,999.99'], 'placeholder': ' ', 'numericInput': true, 'rightAlignNumerics': false\" value=\"$100000.00\"/>");
 		var testmask = document.getElementById("testmask");
 		Inputmask().mask(testmask);
 		setTimeout(function() {
-			equal(testmask.value, "$100,000.00", "Result " + testmask.value);
-			start();
-			$("#testmask").remove();
+			assert.equal(testmask.value, "$100,000.00", "Result " + testmask.value);
+			done();
+
 		}, 0);
 	});
 
-	asyncTest("cuurency - numericInput: true - 123456 backspace x4", function() {
-		var $fixture = $("#qunit-fixture");
+	qunit.test("cuurency - numericInput: true - 123456 backspace x4", function(assert) {
+		var done = assert.async(),
+			$fixture = $("#qunit-fixture");
 		$fixture.append('<input type="text" id="testmask" />');
 		var testmask = document.getElementById("testmask");
 		Inputmask("currency", {
@@ -343,10 +347,9 @@ define([
 			$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
 			$("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
 
-			start();
-			equal(testmask.value, "$ 0.12", "Result " + testmask.value);
+			assert.equal(testmask.value, "$ 0.12", "Result " + testmask.value);
+			done();
 
-			$("#testmask").remove();
 		}, 0);
 	});