tests_numeric.js 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672
  1. define([
  2. "qunit",
  3. "inputmask.dependencyLib",
  4. "inputmask",
  5. "../dist/inputmask/inputmask.date.extensions",
  6. "../dist/inputmask/inputmask.extensions",
  7. "../dist/inputmask/inputmask.numeric.extensions",
  8. "../dist/inputmask/inputmask.phone.extensions",
  9. "../dist/inputmask/inputmask.regex.extensions",
  10. "prototypeExtensions",
  11. "simulator"
  12. ], function (qunit, $, Inputmask) {
  13. qunit.module("Numeric.Extensions");
  14. qunit.test("€ Currency precision 2", function (assert) {
  15. var done = assert.async(),
  16. $fixture = $("#qunit-fixture");
  17. $fixture.append('<input type="text" id="testmask" />');
  18. var testmask = document.getElementById("testmask");
  19. Inputmask("numeric", {
  20. groupSeparator: ",",
  21. placeholder: "0",
  22. autoGroup: true,
  23. digits: 2,
  24. digitsOptional: false,
  25. prefix: "€ "
  26. }).mask(testmask);
  27. testmask.focus();
  28. $("#testmask").trigger("click");
  29. setTimeout(function () {
  30. $("#testmask").Type("1234");
  31. assert.equal(testmask.value, "€ 1,234.00", "Result " + testmask.value);
  32. done();
  33. }, 0);
  34. });
  35. qunit.test("integer type 124 correct to 1234", function (assert) {
  36. var $fixture = $("#qunit-fixture");
  37. $fixture.append('<input type="text" id="testmask" />');
  38. var testmask = document.getElementById("testmask");
  39. Inputmask("numeric", {
  40. groupSeparator: ",",
  41. autoGroup: true
  42. }).mask(testmask);
  43. testmask.focus();
  44. $("#testmask").Type("124");
  45. $.caret(testmask, 2);
  46. $("#testmask").Type("3");
  47. assert.equal(testmask.value, "1,234", "Result " + testmask.value);
  48. });
  49. qunit.test("numeric type 00000 - Webunity", function (assert) {
  50. var $fixture = $("#qunit-fixture");
  51. $fixture.append('<input type="text" id="testmask" />');
  52. var testmask = document.getElementById("testmask");
  53. Inputmask("numeric", {
  54. groupSeparator: ",",
  55. autoGroup: true,
  56. integerDigits: 9
  57. }).mask(testmask);
  58. testmask.focus();
  59. $("#testmask").Type("00000");
  60. $(testmask).trigger("blur");
  61. assert.equal(testmask.value, "0", "Result " + testmask.value);
  62. });
  63. qunit.test("numeric -placeholder 0 type 00000 - Webunity", function (assert) {
  64. var $fixture = $("#qunit-fixture");
  65. $fixture.append('<input type="text" id="testmask" />');
  66. var testmask = document.getElementById("testmask");
  67. Inputmask("numeric", {
  68. groupSeparator: ",",
  69. autoGroup: true,
  70. placeholder: "0"
  71. }).mask(testmask);
  72. testmask.focus();
  73. $("#testmask").Type("00000");
  74. $(testmask).trigger("blur");
  75. assert.equal($("#testmask")[0].inputmask._valueGet(), "0", "Result " + testmask.value);
  76. });
  77. qunit.test("numeric placeholder 0 prefix € type 0.123 - Webunity", function (assert) {
  78. var $fixture = $("#qunit-fixture");
  79. $fixture.append('<input type="text" id="testmask" />');
  80. var testmask = document.getElementById("testmask");
  81. Inputmask("numeric", {
  82. groupSeparator: ",",
  83. autoGroup: true,
  84. placeholder: "0",
  85. prefix: "€ "
  86. }).mask(testmask);
  87. testmask.focus();
  88. $("#testmask").Type("0.123");
  89. assert.equal(testmask.value, "€ 0.123", "Result " + testmask.value);
  90. });
  91. qunit.test("numeric placeholder 0 prefix € type 0.123 - backspace - Webunity", function (assert) {
  92. var $fixture = $("#qunit-fixture");
  93. $fixture.append('<input type="text" id="testmask" />');
  94. var testmask = document.getElementById("testmask");
  95. Inputmask("numeric", {
  96. groupSeparator: ",",
  97. autoGroup: true,
  98. placeholder: "0",
  99. prefix: "€ "
  100. }).mask(testmask);
  101. testmask.focus();
  102. $("#testmask").Type("0.123");
  103. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  104. assert.equal(testmask.value, "€ 0.12", "Result " + testmask.value);
  105. });
  106. qunit.test("numeric placeholder 0 prefix € type 0.123 + add 1 in front - Webunity", function (assert) {
  107. var $fixture = $("#qunit-fixture");
  108. $fixture.append('<input type="text" id="testmask" />');
  109. var testmask = document.getElementById("testmask");
  110. Inputmask("numeric", {
  111. groupSeparator: ",",
  112. autoGroup: true,
  113. placeholder: "0",
  114. prefix: "€ "
  115. }).mask(testmask);
  116. testmask.focus();
  117. $("#testmask").Type("0.123");
  118. $.caret(testmask, 2);
  119. $("#testmask").Type("1");
  120. assert.equal(testmask.value, "€ 10.123", "Result " + testmask.value);
  121. });
  122. qunit.test("numeric placeholder 0 autoGroup: false prefix € type 0.123 + add 123 in front - Webunity", function (assert) {
  123. var $fixture = $("#qunit-fixture");
  124. $fixture.append('<input type="text" id="testmask" />');
  125. var testmask = document.getElementById("testmask");
  126. Inputmask("numeric", {
  127. groupSeparator: ",",
  128. autoGroup: false,
  129. placeholder: "0",
  130. prefix: "€ "
  131. }).mask(testmask);
  132. testmask.focus();
  133. $("#testmask").Type("0.123");
  134. $.caret(testmask, 2);
  135. $("#testmask").Type("123");
  136. assert.equal(testmask.value, "€ 1230.123", "Result " + testmask.value);
  137. });
  138. qunit.test("numeric placeholder 0 autoGroup: true prefix € type 0.123 + add 123 in front - Webunity", function (assert) {
  139. var $fixture = $("#qunit-fixture");
  140. $fixture.append('<input type="text" id="testmask" />');
  141. var testmask = document.getElementById("testmask");
  142. Inputmask("numeric", {
  143. groupSeparator: ",",
  144. autoGroup: true,
  145. placeholder: "0",
  146. prefix: "€ "
  147. }).mask(testmask);
  148. testmask.focus();
  149. $("#testmask").Type("0.123");
  150. $.caret(testmask, 2);
  151. $("#testmask").Type("123");
  152. assert.equal(testmask.value, "€ 1,230.123", "Result " + testmask.value);
  153. });
  154. qunit.test("integer alias with integerDigits 9 & autogroup - type 123456789 - gigermocas", function (assert) {
  155. var $fixture = $("#qunit-fixture");
  156. $fixture.append('<input type="text" id="testmask" />');
  157. var testmask = document.getElementById("testmask");
  158. Inputmask("integer", {
  159. groupSeparator: ",",
  160. autoGroup: true,
  161. integerDigits: 9
  162. }).mask(testmask);
  163. testmask.focus();
  164. $("#testmask").Type("123456789");
  165. assert.equal(testmask.value, "123,456,789", "Result " + testmask.value);
  166. });
  167. qunit.test("integer alias with integerDigits 9 & autogroup - type 1234567890123456789 - gigermocas", function (assert) {
  168. var $fixture = $("#qunit-fixture");
  169. $fixture.append('<input type="text" id="testmask" />');
  170. var testmask = document.getElementById("testmask");
  171. Inputmask("integer", {
  172. groupSeparator: ",",
  173. autoGroup: true,
  174. integerDigits: 9
  175. }).mask(testmask);
  176. testmask.focus();
  177. $("#testmask").Type("1234567890123456789");
  178. assert.equal(testmask.value, "123,456,789", "Result " + testmask.value);
  179. });
  180. qunit.test("integer alias with integerDigits 4 & autogroup - type 1234567890123456789 - gigermocas", function (assert) {
  181. var $fixture = $("#qunit-fixture");
  182. $fixture.append('<input type="text" id="testmask" />');
  183. var testmask = document.getElementById("testmask");
  184. Inputmask("integer", {
  185. groupSeparator: ",",
  186. autoGroup: true,
  187. integerDigits: 4
  188. }).mask(testmask);
  189. testmask.focus();
  190. $("#testmask").Type("1234567890123456789");
  191. assert.equal(testmask.value, "1,234", "Result " + testmask.value);
  192. });
  193. qunit.test("decimal alias with integerDigits 9 & autogroup - type 123456789 - gigermocas", function (assert) {
  194. var $fixture = $("#qunit-fixture");
  195. $fixture.append('<input type="text" id="testmask" />');
  196. var testmask = document.getElementById("testmask");
  197. Inputmask("decimal", {
  198. groupSeparator: ",",
  199. autoGroup: true,
  200. integerDigits: 9
  201. }).mask(testmask);
  202. testmask.focus();
  203. $("#testmask").Type("123456789");
  204. assert.equal(testmask.value, "123,456,789", "Result " + testmask.value);
  205. });
  206. qunit.test("decimal alias with integerDigits 4 & autogroup - type 1234 - gigermocas", function (assert) {
  207. var $fixture = $("#qunit-fixture");
  208. $fixture.append('<input type="text" id="testmask" />');
  209. var testmask = document.getElementById("testmask");
  210. Inputmask("decimal", {
  211. groupSeparator: ",",
  212. autoGroup: true,
  213. integerDigits: 4
  214. }).mask(testmask);
  215. testmask.focus();
  216. $("#testmask").Type("1234");
  217. assert.equal(testmask.value, "1,234", "Result " + testmask.value);
  218. });
  219. qunit.test("numeric alias with allowMinus:false type=text - vijjj", function (assert) {
  220. var $fixture = $("#qunit-fixture");
  221. $fixture.append('<input type="text" id="testmask" />');
  222. var testmask = document.getElementById("testmask");
  223. Inputmask("numeric", {
  224. radixPoint: ".",
  225. integerDigits: 6,
  226. allowMinus: false
  227. }).mask(testmask);
  228. testmask.focus();
  229. $("#testmask").Type("123456");
  230. $.caret(testmask, 0);
  231. $("#testmask").SendKey("-");
  232. assert.equal(testmask.value, "123456", "Result " + testmask.value);
  233. });
  234. qunit.test("numeric alias with allowMinus:false type=number - mask not applied - MartinVerges", function (assert) {
  235. var $fixture = $("#qunit-fixture");
  236. $fixture.append('<input type="number" id="testmask" />');
  237. var testmask = document.getElementById("testmask");
  238. Inputmask("numeric", {
  239. radixPoint: ".",
  240. integerDigits: 6,
  241. allowMinus: false
  242. }).mask(testmask);
  243. testmask.focus();
  244. $("#testmask").Type("123456");
  245. $("#testmask").SendKey("-");
  246. //IE7 does not know type=number and treats as type=text
  247. //noinspection JSUnresolvedFunction
  248. ok(testmask.value === "" || testmask.value === "123456", "Result " + testmask.value);
  249. });
  250. qunit.test("inputmask(\"numeric\", { prefix: \"€ \" }\") - input 12345.12", function (assert) {
  251. var $fixture = $("#qunit-fixture");
  252. $fixture.append('<input type="text" id="testmask" />');
  253. var testmask = document.getElementById("testmask");
  254. Inputmask("numeric", {
  255. prefix: "€ "
  256. }).mask(testmask);
  257. testmask.focus();
  258. $("#testmask").Type("12345.12");
  259. assert.equal(testmask.value, "€ 12345.12", "Result " + testmask.value);
  260. });
  261. qunit.test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123", function (assert) {
  262. var $fixture = $("#qunit-fixture");
  263. $fixture.append('<input type="text" id="testmask" />');
  264. var testmask = document.getElementById("testmask");
  265. Inputmask("decimal", {
  266. autoGroup: true,
  267. groupSeparator: ","
  268. }).mask(testmask);
  269. testmask.focus();
  270. $("#testmask").SendKey("1");
  271. $("#testmask").SendKey("2");
  272. $("#testmask").SendKey("3");
  273. $("#testmask").SendKey("4");
  274. $("#testmask").SendKey("5");
  275. $("#testmask").SendKey(".");
  276. $("#testmask").SendKey("1");
  277. $("#testmask").SendKey("2");
  278. $("#testmask").SendKey("3");
  279. assert.equal(testmask.value, "12,345.123", "Result " + testmask.value);
  280. });
  281. qunit.test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + remove .123", function (assert) {
  282. var done = assert.async(),
  283. $fixture = $("#qunit-fixture");
  284. $fixture.append('<input type="text" id="testmask" />');
  285. var testmask = document.getElementById("testmask");
  286. Inputmask("decimal", {
  287. autoGroup: true,
  288. groupSeparator: ",",
  289. decimalProtect: true
  290. }).mask(testmask);
  291. testmask.focus();
  292. $("#testmask").Type("12345.123");
  293. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  294. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  295. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  296. $(testmask).trigger("blur");
  297. setTimeout(function () {
  298. assert.equal(testmask.value, "12,345", "Result " + testmask.value);
  299. done();
  300. }, 0);
  301. });
  302. qunit.test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123 + replace .123 => .789", function (assert) {
  303. var $fixture = $("#qunit-fixture");
  304. $fixture.append('<input type="text" id="testmask" />');
  305. var testmask = document.getElementById("testmask");
  306. Inputmask("decimal", {
  307. autoGroup: true,
  308. groupSeparator: ","
  309. }).mask(testmask);
  310. testmask.focus();
  311. $("#testmask").Type("12345.123");
  312. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  313. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  314. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  315. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  316. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  317. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  318. $("#testmask").Type(".789");
  319. assert.equal(testmask.value, "12,345.789", "Result " + testmask.value);
  320. });
  321. qunit.test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123 + select replace .123 => .789", function (assert) {
  322. var $fixture = $("#qunit-fixture");
  323. $fixture.append('<input type="text" id="testmask" />');
  324. var testmask = document.getElementById("testmask");
  325. Inputmask("decimal", {
  326. autoGroup: true,
  327. groupSeparator: ","
  328. }).mask(testmask);
  329. testmask.focus();
  330. $("#testmask").Type("12345.123");
  331. //$("#testmask").trigger("click");
  332. $.caret(testmask, 6, 10);
  333. $("#testmask").Type(".789");
  334. assert.equal(testmask.value, "12,345.789", "Result " + testmask.value);
  335. });
  336. qunit.test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + remove .123", function (assert) {
  337. var $fixture = $("#qunit-fixture");
  338. $fixture.append('<input type="text" id="testmask" />');
  339. var testmask = document.getElementById("testmask");
  340. Inputmask("decimal", {
  341. autoGroup: false,
  342. groupSeparator: ",",
  343. decimalProtect: true
  344. }).mask(testmask);
  345. testmask.focus();
  346. $("#testmask").Type("12345.123");
  347. //$("#testmask").trigger("click");
  348. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  349. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  350. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  351. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  352. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  353. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  354. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  355. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  356. assert.equal(testmask.value, "12345", "Result " + testmask.value);
  357. });
  358. qunit.test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: false }\") - input 12345.123 + remove .123", function (assert) {
  359. var $fixture = $("#qunit-fixture");
  360. $fixture.append('<input type="text" id="testmask" />');
  361. var testmask = document.getElementById("testmask");
  362. Inputmask("decimal", {
  363. autoGroup: false,
  364. groupSeparator: ",",
  365. decimalProtect: false
  366. }).mask(testmask);
  367. testmask.focus();
  368. $("#testmask").Type("12345.123");
  369. //$("#testmask").trigger("click");
  370. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  371. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  372. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  373. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  374. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  375. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  376. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  377. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  378. assert.equal(testmask.value, "12345", "Result " + testmask.value);
  379. });
  380. qunit.test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + replace .123 => .789", function (assert) {
  381. var $fixture = $("#qunit-fixture");
  382. $fixture.append('<input type="text" id="testmask" />');
  383. var testmask = document.getElementById("testmask");
  384. Inputmask("decimal", {
  385. autoGroup: false,
  386. groupSeparator: ",",
  387. decimalProtect: true
  388. }).mask(testmask);
  389. testmask.focus();
  390. $("#testmask").Type("12345.123");
  391. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  392. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  393. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  394. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  395. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  396. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  397. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  398. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  399. $("#testmask").Type(".789");
  400. assert.equal(testmask.value, "12345.789", "Result " + testmask.value);
  401. });
  402. qunit.test("inputmask(\"decimal\") - maxlength 10", function (assert) {
  403. var $fixture = $("#qunit-fixture");
  404. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  405. var testmask = document.getElementById("testmask");
  406. Inputmask("decimal").mask(testmask);
  407. testmask.focus();
  408. $("#testmask").Type("123456789012345");
  409. assert.equal(testmask.value, "1234567890", "Result " + testmask.value);
  410. });
  411. qunit.test("inputmask(\"decimal, { repeat: 15 }\") - maxlength 10", function (assert) {
  412. var $fixture = $("#qunit-fixture");
  413. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  414. var testmask = document.getElementById("testmask");
  415. Inputmask("decimal", {
  416. repeat: 15
  417. }).mask(testmask);
  418. testmask.focus();
  419. $("#testmask").Type("123456789012345");
  420. assert.equal(testmask.value, "1234567890", "Result " + testmask.value);
  421. });
  422. qunit.test("inputmask(\"decimal, { repeat: 5, decimalProtect: true }\") - maxlength 10", function (assert) {
  423. var $fixture = $("#qunit-fixture");
  424. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  425. var testmask = document.getElementById("testmask");
  426. Inputmask("decimal", {
  427. repeat: 5,
  428. decimalProtect: true
  429. }).mask(testmask);
  430. testmask.focus();
  431. $("#testmask").Type("123456789012345");
  432. assert.equal(testmask.value, "12345", "Result " + testmask.value);
  433. });
  434. qunit.test("inputmask(\"decimal, { repeat: 5, decimalProtect: false }\") - maxlength 10", function (assert) {
  435. var $fixture = $("#qunit-fixture");
  436. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  437. var testmask = document.getElementById("testmask");
  438. Inputmask("decimal", {
  439. repeat: 5,
  440. decimalProtect: false
  441. }).mask(testmask);
  442. testmask.focus();
  443. $("#testmask").Type("123456789012345");
  444. assert.equal(testmask.value, "12345.6789", "Result " + testmask.value);
  445. });
  446. qunit.test("inputmask(\"decimal\")", function (assert) {
  447. var $fixture = $("#qunit-fixture");
  448. $fixture.append('<input type="text" id="testmask" />');
  449. var testmask = document.getElementById("testmask");
  450. Inputmask("decimal").mask(testmask);
  451. testmask.focus();
  452. $("#testmask").Type("1234567890");
  453. $.caret(testmask, 0, 10);
  454. $("#testmask").Type("12345");
  455. assert.equal(testmask.value, "12345", "Result " + testmask.value);
  456. });
  457. qunit.test("inputmask(\"decimal\") - value=\"1234567890\"", function (assert) {
  458. var $fixture = $("#qunit-fixture");
  459. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  460. var testmask = document.getElementById("testmask");
  461. Inputmask("decimal").mask(testmask);
  462. testmask.focus();
  463. $.caret(testmask, 0, 10);
  464. $("#testmask").Type("12345");
  465. assert.equal(testmask.value, "12345", "Result " + testmask.value);
  466. });
  467. qunit.test("inputmask(\"decimal\")", function (assert) {
  468. var $fixture = $("#qunit-fixture");
  469. $fixture.append('<input type="text" id="testmask" />');
  470. var testmask = document.getElementById("testmask");
  471. Inputmask("decimal").mask(testmask);
  472. testmask.focus();
  473. $("#testmask").Type("1234567890");
  474. $.caret(testmask, 3, 5);
  475. $("#testmask").SendKey("0");
  476. assert.equal(testmask.value, "123067890", "Result " + testmask.value);
  477. });
  478. qunit.test("inputmask(\"decimal\") - value=\"1234567890\"", function (assert) {
  479. var $fixture = $("#qunit-fixture");
  480. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  481. var testmask = document.getElementById("testmask");
  482. Inputmask("decimal").mask(testmask);
  483. testmask.focus();
  484. $.caret(testmask, 3, 5);
  485. $("#testmask").SendKey("0");
  486. assert.equal(testmask.value, "123067890", "Result " + testmask.value);
  487. });
  488. qunit.test("inputmask(\"decimal\") - value=\"123.45\" Replace last integer", function (assert) {
  489. var $fixture = $("#qunit-fixture");
  490. $fixture.append('<input type="text" id="testmask" />');
  491. var testmask = document.getElementById("testmask");
  492. Inputmask("decimal", {
  493. digits: 2
  494. }).mask(testmask);
  495. testmask.focus();
  496. $("#testmask").Type("123.45");
  497. $.caret(testmask, 2, 3);
  498. $("#testmask").SendKey("7");
  499. assert.equal(testmask.value, "127.45", "Result " + testmask.value);
  500. });
  501. qunit.test("inputmask(\"decimal\", { digits: 2 }) - value=\"123\" - RomeroMsk", function (assert) {
  502. var $fixture = $("#qunit-fixture");
  503. $fixture.append('<input type="text" id="testmask" />');
  504. var testmask = document.getElementById("testmask");
  505. Inputmask("decimal", {
  506. digits: 2
  507. }).mask(testmask);
  508. testmask.focus();
  509. $("#testmask").Type("123");
  510. $.caret(testmask, 0, 3);
  511. $("#testmask").SendKey(",,..");
  512. $("#testmask").Type("45");
  513. assert.equal(testmask.value, "0.45", "Result " + testmask.value);
  514. });
  515. qunit.test("inputmask - Multiple inputs masked, Integer mask doesn't allow typing - #402 - albatrocity", function (assert) {
  516. var $fixture = $("#qunit-fixture");
  517. $fixture.append('<input type="text" id="testmask" />');
  518. var testmask = document.getElementById("testmask");
  519. $fixture.append('<input type="text" id="testmask2" />');
  520. var testmask2 = document.getElementById("testmask2");
  521. Inputmask("integer", {
  522. autoGroup: true,
  523. groupSeparator: ",",
  524. groupSize: 3
  525. }).mask(testmask);
  526. Inputmask("(999)-999-9999").mask(testmask2);
  527. testmask.focus();
  528. $("#testmask").Type("12345");
  529. assert.equal(testmask.value, "12,345", "Result " + testmask.value);
  530. $("#testmask2").remove();
  531. });
  532. qunit.test("decimal alias with groupseparator delete - YoussefTaghlabi", function (assert) {
  533. var $fixture = $("#qunit-fixture");
  534. $fixture.append('<input type="text" id="testmask" />');
  535. var testmask = document.getElementById("testmask");
  536. Inputmask("decimal", {
  537. radixPoint: ".",
  538. groupSeparator: ",",
  539. groupSize: 3,
  540. digits: 2,
  541. autoGroup: true,
  542. allowPlus: false,
  543. allowMinus: true
  544. }).mask(testmask);
  545. testmask.focus();
  546. $("#testmask").Type("1234567");
  547. $.caret(testmask, 0);
  548. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  549. assert.equal(testmask.value, "234,567", "Result " + testmask.value);
  550. });
  551. qunit.test("decimal alias with groupseparator backspace - YoussefTaghlabi", function (assert) {
  552. var $fixture = $("#qunit-fixture");
  553. $fixture.append('<input type="text" id="testmask" />');
  554. var testmask = document.getElementById("testmask");
  555. Inputmask("decimal", {
  556. radixPoint: ".",
  557. groupSeparator: ",",
  558. groupSize: 3,
  559. digits: 2,
  560. autoGroup: true,
  561. allowPlus: false,
  562. allowMinus: true
  563. }).mask(testmask);
  564. testmask.focus();
  565. $("#testmask").Type("1234567");
  566. $.caret(testmask, 1);
  567. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  568. assert.equal(testmask.value, "234,567", "Result " + testmask.value);
  569. });
  570. qunit.test("decimal alias with plus or minus & autogroup - type -123456 - YoussefTaghlabi", function (assert) {
  571. var $fixture = $("#qunit-fixture");
  572. $fixture.append('<input type="text" id="testmask" />');
  573. var testmask = document.getElementById("testmask");
  574. Inputmask("decimal", {
  575. radixPoint: ".",
  576. groupSeparator: ",",
  577. groupSize: 3,
  578. digits: 2,
  579. autoGroup: true,
  580. allowPlus: true,
  581. allowMinus: true
  582. }).mask(testmask);
  583. testmask.focus();
  584. $("#testmask").Type("-123456");
  585. assert.equal(testmask.value, "-123,456", "Result " + testmask.value);
  586. });
  587. qunit.test("decimal alias with plus or minus & autogroup - type 123465 - - YoussefTaghlabi", function (assert) {
  588. var $fixture = $("#qunit-fixture");
  589. $fixture.append('<input type="text" id="testmask" />');
  590. var testmask = document.getElementById("testmask");
  591. Inputmask("decimal", {
  592. radixPoint: ".",
  593. groupSeparator: ",",
  594. groupSize: 3,
  595. digits: 2,
  596. autoGroup: true,
  597. allowPlus: true,
  598. allowMinus: true
  599. }).mask(testmask);
  600. testmask.focus();
  601. $("#testmask").Type("123456");
  602. $.caret(testmask, 0);
  603. $("#testmask").SendKey("-");
  604. assert.equal(testmask.value, "-123,456", "Result " + testmask.value);
  605. });
  606. qunit.test("decimal alias with plus or minus & autogroup", function (assert) {
  607. var $fixture = $("#qunit-fixture");
  608. $fixture.append('<input type="text" id="testmask" />');
  609. var testmask = document.getElementById("testmask");
  610. Inputmask("decimal", {
  611. radixPoint: ".",
  612. groupSeparator: ",",
  613. groupSize: 3,
  614. digits: 2,
  615. autoGroup: true,
  616. allowPlus: true,
  617. allowMinus: true
  618. }).mask(testmask);
  619. testmask.focus();
  620. $("#testmask").Type("1234.56");
  621. assert.equal(testmask.value, "1,234.56", "Result " + testmask.value);
  622. });
  623. qunit.test("decimal alias set value with val() - kochelmonster", function (assert) {
  624. var $fixture = $("#qunit-fixture");
  625. $fixture.append('<input type="text" id="testmask" />');
  626. var testmask = document.getElementById("testmask");
  627. Inputmask("decimal", {
  628. radixPoint: ",",
  629. groupSeparator: ".",
  630. digits: 2,
  631. autoGroup: true,
  632. suffix: ' €'
  633. }).mask(testmask);
  634. $("#testmask").val("39.399.392,22 €");
  635. assert.equal(testmask.value, "39.399.392,22 €", "Result " + testmask.value);
  636. });
  637. qunit.test("inputmask(\"decimal\") - value=\"123.1\" blur digitsoptional", function (assert) {
  638. var done = assert.async(),
  639. $fixture = $("#qunit-fixture");
  640. $fixture.append('<input type="text" id="testmask" />');
  641. var testmask = document.getElementById("testmask");
  642. Inputmask("decimal", {
  643. digits: 3
  644. }).mask(testmask);
  645. testmask.focus();
  646. $("#testmask").Type("123.1");
  647. $(testmask).trigger("blur");
  648. setTimeout(function () {
  649. assert.equal(testmask.value, "123.1", "Result " + testmask.value);
  650. done();
  651. }, 0);
  652. });
  653. qunit.test("inputmask(\"decimal\") - value=\"123.1\" blur", function (assert) {
  654. var done = assert.async(),
  655. $fixture = $("#qunit-fixture");
  656. $fixture.append('<input type="text" id="testmask" />');
  657. var testmask = document.getElementById("testmask");
  658. Inputmask("decimal", {
  659. digits: 3,
  660. digitsOptional: false
  661. }).mask(testmask);
  662. testmask.focus();
  663. $("#testmask").Type("123.1");
  664. $(testmask).trigger("blur");
  665. setTimeout(function () {
  666. assert.equal(testmask.value, "123.100", "Result " + testmask.value);
  667. done();
  668. }, 0);
  669. });
  670. qunit.test("currency alias - 200000 => replace 2 to 3", function (assert) {
  671. var done = assert.async(),
  672. $fixture = $("#qunit-fixture");
  673. $fixture.append('<input type="text" id="testmask" />');
  674. var testmask = document.getElementById("testmask");
  675. Inputmask("currency").mask(testmask);
  676. testmask.focus();
  677. $("#testmask").trigger("click");
  678. setTimeout(function () {
  679. $("#testmask").Type("200000");
  680. $.caret(testmask, 2, 3);
  681. $("#testmask").Type("3");
  682. assert.equal(testmask.value, "$ 300,000.00", "Result " + testmask.value);
  683. done();
  684. }, 5);
  685. });
  686. qunit.test("inputmask(\"integer\") - -0 - laxmikantG", function (assert) {
  687. var done = assert.async(),
  688. $fixture = $("#qunit-fixture");
  689. $fixture.append('<input type="text" id="testmask" />');
  690. var testmask = document.getElementById("testmask");
  691. Inputmask("integer", {
  692. placeholder: "0"
  693. }).mask(testmask);
  694. testmask.focus();
  695. $("#testmask").Type("-0");
  696. $(testmask).trigger("blur");
  697. setTimeout(function () {
  698. assert.equal(testmask.value, "", "Result " + testmask.value);
  699. done();
  700. }, 0);
  701. });
  702. qunit.test("inputmask(\"integer\") - 123- - laxmikantG", function (assert) {
  703. var $fixture = $("#qunit-fixture");
  704. $fixture.append('<input type="text" id="testmask" />');
  705. var testmask = document.getElementById("testmask");
  706. Inputmask("integer", {
  707. placeholder: "0"
  708. }).mask(testmask);
  709. testmask.focus();
  710. $("#testmask").Type("123-");
  711. assert.equal(testmask.value, "-123", "Result " + testmask.value);
  712. });
  713. qunit.test("inputmask(\"decimal\") - val(\"-5000,77\"); - ManRueda", function (assert) {
  714. var $fixture = $("#qunit-fixture");
  715. $fixture.append('<input type="text" id="testmask" />');
  716. var testmask = document.getElementById("testmask");
  717. Inputmask('decimal', {
  718. integerDigits: 10,
  719. groupSeparator: '.',
  720. autoGroup: true,
  721. digits: 2,
  722. radixPoint: ',',
  723. groupSize: 3
  724. }).mask(testmask);
  725. $("#testmask").val("-5000,77");
  726. assert.equal(testmask.value, "-5.000,77", "Result " + testmask.value);
  727. });
  728. qunit.test("inputmask(\"decimal\") - -0 - ManRueda", function (assert) {
  729. var done = assert.async(),
  730. $fixture = $("#qunit-fixture");
  731. $fixture.append('<input type="text" id="testmask" />');
  732. var testmask = document.getElementById("testmask");
  733. Inputmask('decimal', {
  734. integerDigits: 10,
  735. groupSeparator: '.',
  736. autoGroup: true,
  737. digits: 2,
  738. radixPoint: ',',
  739. groupSize: 3
  740. }).mask(testmask);
  741. $("#testmask").val("-0");
  742. $(testmask).trigger("blur");
  743. setTimeout(function () {
  744. assert.equal(testmask.value, "0", "Result " + testmask.value);
  745. done();
  746. }, 0);
  747. });
  748. qunit.test("inputmask(\"integer\") - -5.000,77 - DrSammyD", function (assert) {
  749. var $fixture = $("#qunit-fixture");
  750. $fixture.append('<input type="text" id="testmask" />');
  751. var testmask = document.getElementById("testmask");
  752. Inputmask('integer', {
  753. placeholder: "0"
  754. }).mask(testmask);
  755. $("#testmask").val("-5.000,77");
  756. $(testmask).trigger("blur");
  757. assert.equal(testmask.value, "-5000", "Result " + testmask.value);
  758. });
  759. qunit.test("inputmask(\"decimal\ placeholder :\"\" digitsoptional: false) - 123 - loostro", function (assert) {
  760. var done = assert.async(),
  761. $fixture = $("#qunit-fixture");
  762. $fixture.append('<input type="text" id="testmask" value="0,00" />');
  763. var testmask = document.getElementById("testmask");
  764. Inputmask("decimal", {
  765. radixPoint: ",",
  766. digits: 2,
  767. digitsOptional: false,
  768. autoGroup: true,
  769. groupSeparator: " ",
  770. groupSize: 3,
  771. allowPlus: false,
  772. allowMinus: false
  773. }).mask(testmask);
  774. testmask.focus();
  775. $("#testmask").trigger("click");
  776. $.caret(testmask, 0);
  777. setTimeout(function () {
  778. $("#testmask").Type("123");
  779. assert.equal(testmask.value, "123,00", "Result " + testmask.value);
  780. done();
  781. }, 5);
  782. });
  783. qunit.test("inputmask(\"decimal\ placeholder :\"0\" digitsoptional: false) - .12 - YodaJM", function (assert) {
  784. var done = assert.async(),
  785. $fixture = $("#qunit-fixture");
  786. $fixture.append('<input type="text" id="testmask" />');
  787. var testmask = document.getElementById("testmask");
  788. Inputmask('decimal', {
  789. digits: 2,
  790. placeholder: "0",
  791. digitsOptional: false
  792. }).mask(testmask);
  793. testmask.focus();
  794. $.caret(testmask, 0, 4);
  795. setTimeout(function () {
  796. $("#testmask").Type(".12");
  797. assert.equal(testmask.value, "0.12", "Result " + testmask.value);
  798. done();
  799. }, 0);
  800. });
  801. qunit.test("inputmask(\"decimal\") - '8100000.00' - ManRueda", function (assert) {
  802. var $fixture = $("#qunit-fixture");
  803. $fixture.append('<input type="text" id="testmask" />');
  804. var testmask = document.getElementById("testmask");
  805. Inputmask('decimal', {
  806. integerDigits: 6,
  807. groupSeparator: '.',
  808. autoGroup: true,
  809. digits: 2,
  810. radixPoint: ',',
  811. groupSize: 3
  812. }).mask(testmask);
  813. $("#testmask").val("8100000.00");
  814. assert.equal(testmask.value, "810.000,00", "Result " + testmask.value);
  815. });
  816. qunit.test("inputmask(\"decimal\") - '12345678.12' - ManRueda", function (assert) {
  817. var $fixture = $("#qunit-fixture");
  818. $fixture.append('<input type="text" id="testmask" />');
  819. var testmask = document.getElementById("testmask");
  820. Inputmask('decimal', {
  821. integerDigits: 6,
  822. groupSeparator: '.',
  823. autoGroup: true,
  824. digits: 2,
  825. radixPoint: ',',
  826. groupSize: 3
  827. }).mask(testmask);
  828. $("#testmask").val("12345678.12");
  829. assert.equal(testmask.value, "123.456,12", "Result " + testmask.value);
  830. });
  831. qunit.test("inputmask(\"decimal\") - '8100000,00' - ManRueda", function (assert) {
  832. var $fixture = $("#qunit-fixture");
  833. $fixture.append('<input type="text" id="testmask" />');
  834. var testmask = document.getElementById("testmask");
  835. Inputmask('decimal', {
  836. integerDigits: 6,
  837. groupSeparator: '.',
  838. autoGroup: true,
  839. digits: 2,
  840. radixPoint: ',',
  841. groupSize: 3
  842. }).mask(testmask);
  843. $("#testmask").val("8100000,00");
  844. assert.equal(testmask.value, "810.000,00", "Result " + testmask.value);
  845. });
  846. qunit.test("inputmask(\"decimal\") - 8100000.00 - ManRueda", function (assert) {
  847. var $fixture = $("#qunit-fixture");
  848. $fixture.append('<input type="text" id="testmask" />');
  849. var testmask = document.getElementById("testmask");
  850. Inputmask('decimal', {
  851. integerDigits: 6,
  852. groupSeparator: '.',
  853. autoGroup: true,
  854. digits: 2,
  855. radixPoint: ',',
  856. groupSize: 3
  857. }).mask(testmask);
  858. $("#testmask").val(8100000.00);
  859. assert.equal(testmask.value, "810.000", "Result " + testmask.value);
  860. });
  861. qunit.test("inputmask(\"decimal\") - 8100000.00 digitsoptional false - ManRueda", function (assert) {
  862. var $fixture = $("#qunit-fixture");
  863. $fixture.append('<input type="text" id="testmask" />');
  864. var testmask = document.getElementById("testmask");
  865. Inputmask('decimal', {
  866. integerDigits: 6,
  867. groupSeparator: '.',
  868. autoGroup: true,
  869. digits: 2,
  870. digitsOptional: false,
  871. radixPoint: ',',
  872. groupSize: 3
  873. }).mask(testmask);
  874. $("#testmask").val(8100000.00);
  875. $(testmask).trigger("blur");
  876. assert.equal(testmask.value, "810.000,00", "Result " + testmask.value);
  877. });
  878. qunit.test("inputmask(\"decimal\") - 810000.00 - ManRueda", function (assert) {
  879. var $fixture = $("#qunit-fixture");
  880. $fixture.append('<input type="text" id="testmask" />');
  881. var testmask = document.getElementById("testmask");
  882. Inputmask("decimal", {
  883. integerDigits: 6,
  884. groupSeparator: ".",
  885. autoGroup: true,
  886. digits: 2,
  887. radixPoint: ",",
  888. groupSize: 3
  889. }).mask(testmask);
  890. $("#testmask").val("810000.00");
  891. assert.equal(testmask.value, "810.000,00", "Result " + testmask.value);
  892. });
  893. qunit.test("inputmask(\"decimal\") - 123456 78 - babupca", function (assert) {
  894. var done = assert.async(),
  895. $fixture = $("#qunit-fixture");
  896. $fixture.append('<input type="text" id="testmask" />');
  897. var testmask = document.getElementById("testmask");
  898. Inputmask({
  899. alias: "decimal",
  900. integerDigits: 6,
  901. digits: 3,
  902. allowMinus: false,
  903. digitsOptional: false,
  904. placeholder: "0"
  905. }).mask(testmask);
  906. testmask.focus();
  907. $("#testmask").trigger("click");
  908. setTimeout(function () {
  909. $("#testmask").Type("123456");
  910. $.caret(testmask, 8);
  911. $("#testmask").Type("78");
  912. $.caret(testmask, 5);
  913. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  914. assert.equal(testmask.value, "12346.078", "Result " + testmask.value);
  915. done();
  916. }, 0);
  917. });
  918. qunit.test("currency alias - 1234 => del 1", function (assert) {
  919. var done = assert.async(),
  920. $fixture = $("#qunit-fixture");
  921. $fixture.append('<input type="text" id="testmask" />');
  922. var testmask = document.getElementById("testmask");
  923. Inputmask("currency").mask(testmask);
  924. testmask.focus();
  925. $("#testmask").trigger("click");
  926. setTimeout(function () {
  927. $("#testmask").Type("1234");
  928. $.caret(testmask, 3);
  929. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  930. assert.equal(testmask.value, "$ 234.00", "Result " + testmask.value);
  931. done();
  932. }, 5);
  933. });
  934. qunit.test("currency alias - 0.02 => type 1 in integer part", function (assert) {
  935. var done = assert.async(),
  936. $fixture = $("#qunit-fixture");
  937. $fixture.append('<input type="text" id="testmask" />');
  938. var testmask = document.getElementById("testmask");
  939. Inputmask("currency").mask(testmask);
  940. testmask.focus();
  941. $("#testmask").trigger("click");
  942. setTimeout(function () {
  943. $("#testmask").Type("0.02");
  944. $.caret(testmask, 3);
  945. $("#testmask").SendKey("1");
  946. assert.equal(testmask.value, "$ 1.02", "Result " + testmask.value);
  947. done();
  948. }, 5);
  949. });
  950. qunit.test("currency alias - 0.02 => position before 0 type 1 in integer part", function (assert) {
  951. var done = assert.async(),
  952. $fixture = $("#qunit-fixture");
  953. $fixture.append('<input type="text" id="testmask" />');
  954. var testmask = document.getElementById("testmask");
  955. Inputmask("currency").mask(testmask);
  956. testmask.focus();
  957. $("#testmask").trigger("click");
  958. setTimeout(function () {
  959. $("#testmask").Type("0.02");
  960. $.caret(testmask, 2);
  961. $("#testmask").SendKey("1");
  962. assert.equal(testmask.value, "$ 10.02", "Result " + testmask.value);
  963. done();
  964. }, 5);
  965. });
  966. qunit.test("currency alias - 1.23 => del 1 in integer part", function (assert) {
  967. var done = assert.async(),
  968. $fixture = $("#qunit-fixture");
  969. $fixture.append('<input type="text" id="testmask" />');
  970. var testmask = document.getElementById("testmask");
  971. Inputmask("currency").mask(testmask);
  972. testmask.focus();
  973. $("#testmask").trigger("click");
  974. setTimeout(function () {
  975. $("#testmask").Type("1.23");
  976. $.caret(testmask, 3);
  977. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  978. assert.equal(testmask.value, "$ 0.23", "Result " + testmask.value);
  979. done();
  980. }, 5);
  981. });
  982. qunit.test("currency alias - 1234.56 => delete all", function (assert) {
  983. var done = assert.async(),
  984. $fixture = $("#qunit-fixture");
  985. $fixture.append('<input type="text" id="testmask" />');
  986. var testmask = document.getElementById("testmask");
  987. Inputmask("currency").mask(testmask);
  988. testmask.focus();
  989. $("#testmask").trigger("click");
  990. setTimeout(function () {
  991. $("#testmask").Type("1234.56");
  992. $.caret(testmask, 0, 10);
  993. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  994. assert.equal($("#testmask")[0].inputmask._valueGet(), "$ 0.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  995. done();
  996. }, 5);
  997. });
  998. qunit.test("numeric prefix='$' - paste 1234.56 - baileyjames9 & TheAndyBob", function (assert) {
  999. var done = assert.async(),
  1000. $fixture = $("#qunit-fixture");
  1001. $fixture.append('<input type="text" id="testmask" />');
  1002. var testmask = document.getElementById("testmask");
  1003. Inputmask("numeric", {
  1004. radixPoint: ".",
  1005. groupSeparator: ",",
  1006. digits: 2,
  1007. autoGroup: true,
  1008. prefix: '$' //No Space, this will truncate the first character
  1009. }).mask(testmask);
  1010. testmask.focus();
  1011. $("#testmask").trigger("click");
  1012. setTimeout(function () {
  1013. $("#testmask").paste("1234.56");
  1014. assert.equal(testmask.value, "$1,234.56", "Result " + testmask.value);
  1015. done();
  1016. }, 5);
  1017. });
  1018. qunit.test("currency alias - 1234.56 => select integer press 1 - babupca", function (assert) {
  1019. var done = assert.async(),
  1020. $fixture = $("#qunit-fixture");
  1021. $fixture.append('<input type="text" id="testmask" />');
  1022. var testmask = document.getElementById("testmask");
  1023. Inputmask("currency").mask(testmask);
  1024. testmask.focus();
  1025. $("#testmask").trigger("click");
  1026. setTimeout(function () {
  1027. $("#testmask").Type("1234.56");
  1028. $.caret(testmask, 0, 7);
  1029. $("#testmask").SendKey("1");
  1030. assert.equal($("#testmask")[0].inputmask._valueGet(), "$ 1.56", "Result " + $("#testmask")[0].inputmask._valueGet());
  1031. done();
  1032. }, 5);
  1033. });
  1034. qunit.test("currency alias - 123.56 => select integer press 1 - babupca", function (assert) {
  1035. var done = assert.async(),
  1036. $fixture = $("#qunit-fixture");
  1037. $fixture.append('<input type="text" id="testmask" />');
  1038. var testmask = document.getElementById("testmask");
  1039. Inputmask("currency").mask(testmask);
  1040. testmask.focus();
  1041. $("#testmask").trigger("click");
  1042. setTimeout(function () {
  1043. $("#testmask").Type("123.56");
  1044. $.caret(testmask, 0, 5);
  1045. $("#testmask").SendKey("1");
  1046. assert.equal($("#testmask")[0].inputmask._valueGet(), "$ 1.56", "Result " + $("#testmask")[0].inputmask._valueGet());
  1047. done();
  1048. }, 5);
  1049. });
  1050. qunit.test("currency alias - 123.56 => select integer press 1 - babupca", function (assert) {
  1051. var done = assert.async(),
  1052. $fixture = $("#qunit-fixture");
  1053. $fixture.append('<input type="text" id="testmask" />');
  1054. var testmask = document.getElementById("testmask");
  1055. Inputmask("currency", {
  1056. prefix: "$"
  1057. }).mask(testmask);
  1058. testmask.focus();
  1059. $("#testmask").trigger("click");
  1060. setTimeout(function () {
  1061. $("#testmask").Type("123.56");
  1062. $.caret(testmask, 0, 4);
  1063. $("#testmask").SendKey("1");
  1064. assert.equal($("#testmask")[0].inputmask._valueGet(), "$1.56", "Result " + $("#testmask")[0].inputmask._valueGet());
  1065. done();
  1066. }, 5);
  1067. });
  1068. qunit.test("currency alias - min 1000", function (assert) {
  1069. var done = assert.async(),
  1070. $fixture = $("#qunit-fixture");
  1071. $fixture.append('<input type="text" id="testmask" />');
  1072. var testmask = document.getElementById("testmask");
  1073. Inputmask("currency", {
  1074. min: 1000
  1075. }).mask(testmask);
  1076. testmask.focus();
  1077. $(testmask).trigger("blur");
  1078. setTimeout(function () {
  1079. assert.equal($("#testmask")[0].inputmask._valueGet(), "$ 1,000.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1080. done();
  1081. }, 5);
  1082. });
  1083. qunit.test("currency alias - max 1000 - type 1234", function (assert) {
  1084. var done = assert.async(),
  1085. $fixture = $("#qunit-fixture");
  1086. $fixture.append('<input type="text" id="testmask" />');
  1087. var testmask = document.getElementById("testmask");
  1088. Inputmask("currency", {
  1089. max: 1000
  1090. }).mask(testmask);
  1091. testmask.focus();
  1092. $("#testmask").trigger("click");
  1093. setTimeout(function () {
  1094. $("#testmask").Type("1234");
  1095. $("#testmask").trigger("blur");
  1096. setTimeout(function () {
  1097. assert.equal($("#testmask")[0].inputmask._valueGet(), "$ 1,000.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1098. done();
  1099. }, 0);
  1100. }, 5);
  1101. });
  1102. qunit.test("currency alias - type 1010 delete first 1 - FilipeZhou", function (assert) {
  1103. var $fixture = $("#qunit-fixture");
  1104. $fixture.append('<input type="text" id="testmask" />');
  1105. var testmask = document.getElementById("testmask");
  1106. Inputmask("currency").mask(testmask);
  1107. testmask.focus();
  1108. $("#testmask").trigger("click");
  1109. $("#testmask").Type("1010");
  1110. $.caret(testmask, 3);
  1111. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  1112. assert.equal($("#testmask")[0].inputmask._valueGet(), "$ 10.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1113. });
  1114. qunit.test("currency alias - type 1010 delete middle 1 - FilipeZhou", function (assert) {
  1115. var $fixture = $("#qunit-fixture");
  1116. $fixture.append('<input type="text" id="testmask" />');
  1117. var testmask = document.getElementById("testmask");
  1118. Inputmask("currency").mask(testmask);
  1119. testmask.focus();
  1120. $("#testmask").trigger("click");
  1121. $("#testmask").Type("1010");
  1122. $.caret(testmask, 6);
  1123. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  1124. assert.equal($("#testmask")[0].inputmask._valueGet(), "$ 100.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1125. });
  1126. qunit.test("currency alias - type -1234 delete -", function (assert) {
  1127. var $fixture = $("#qunit-fixture");
  1128. $fixture.append('<input type="text" id="testmask" />');
  1129. var testmask = document.getElementById("testmask");
  1130. Inputmask("currency").mask(testmask);
  1131. testmask.focus();
  1132. $("#testmask").trigger("click");
  1133. $("#testmask").Type("-1234");
  1134. $.caret(testmask, 0);
  1135. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  1136. assert.equal($("#testmask")[0].inputmask._valueGet(), "$ 1,234.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1137. });
  1138. qunit.test("decimal alias - type 12345.12 add 6 in front - freeze - DatXN", function (assert) {
  1139. var $fixture = $("#qunit-fixture");
  1140. $fixture.append('<input type="text" id="testmask" />');
  1141. var testmask = document.getElementById("testmask");
  1142. Inputmask("decimal", {
  1143. integerDigits: 5,
  1144. digits: 2,
  1145. allowMinus: false,
  1146. allowPlus: false
  1147. }).mask(testmask);
  1148. testmask.focus();
  1149. $("#testmask").trigger("click");
  1150. $("#testmask").Type("12345.12");
  1151. $.caret(testmask, 0);
  1152. $("#testmask").SendKey("6");
  1153. assert.equal($("#testmask")[0].inputmask._valueGet(), "12345.12", "Result " + $("#testmask")[0].inputmask._valueGet());
  1154. });
  1155. qunit.test("decimal alias - type 123456789 - add , before 8 - jpontet", function (assert) {
  1156. var $fixture = $("#qunit-fixture");
  1157. $fixture.append('<input type="text" id="testmask" />');
  1158. var testmask = document.getElementById("testmask");
  1159. Inputmask("decimal", {
  1160. allowMinus: true,
  1161. integerDigits: 12,
  1162. digits: 2,
  1163. radixPoint: ",",
  1164. autoGroup: true,
  1165. groupSeparator: " ",
  1166. groupSize: 3,
  1167. rightAlign: false
  1168. }).mask(testmask);
  1169. testmask.focus();
  1170. $("#testmask").trigger("click");
  1171. $("#testmask").Type("123456789");
  1172. $.caret(testmask, 9);
  1173. $("#testmask").SendKey(",");
  1174. assert.equal($("#testmask")[0].inputmask._valueGet(), "1 234 567,89", "Result " + $("#testmask")[0].inputmask._valueGet());
  1175. });
  1176. qunit.test("decimal alias - type 123456789 - add , before 8 - backspace - jpontet", function (assert) {
  1177. var $fixture = $("#qunit-fixture");
  1178. $fixture.append('<input type="text" id="testmask" />');
  1179. var testmask = document.getElementById("testmask");
  1180. Inputmask("decimal", {
  1181. allowMinus: true,
  1182. integerDigits: 12,
  1183. digits: 2,
  1184. radixPoint: ",",
  1185. autoGroup: true,
  1186. groupSeparator: " ",
  1187. groupSize: 3,
  1188. rightAlign: false
  1189. }).mask(testmask);
  1190. testmask.focus();
  1191. $("#testmask").trigger("click");
  1192. $("#testmask").Type("123456789");
  1193. $.caret(testmask, 9);
  1194. $("#testmask").SendKey(",");
  1195. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  1196. assert.equal($("#testmask")[0].inputmask._valueGet(), "123 456,89", "Result " + $("#testmask")[0].inputmask._valueGet());
  1197. });
  1198. qunit.test("decimal alias - type 1234567890 - add , before 9 - jpontet", function (assert) {
  1199. var $fixture = $("#qunit-fixture");
  1200. $fixture.append('<input type="text" id="testmask" />');
  1201. var testmask = document.getElementById("testmask");
  1202. Inputmask("decimal", {
  1203. allowMinus: true,
  1204. integerDigits: 12,
  1205. digits: 2,
  1206. radixPoint: ",",
  1207. autoGroup: true,
  1208. groupSeparator: " ",
  1209. groupSize: 3,
  1210. rightAlign: false
  1211. }).mask(testmask);
  1212. testmask.focus();
  1213. $("#testmask").trigger("click");
  1214. $("#testmask").Type("1234567890");
  1215. $.caret(testmask, 11);
  1216. $("#testmask").SendKey(",");
  1217. assert.equal($("#testmask")[0].inputmask._valueGet(), "12 345 678,90", "Result " + $("#testmask")[0].inputmask._valueGet());
  1218. });
  1219. qunit.test("decimal alias - type 1234567890 - add , before 9 - backspace - jpontet", function (assert) {
  1220. var $fixture = $("#qunit-fixture");
  1221. $fixture.append('<input type="text" id="testmask" />');
  1222. var testmask = document.getElementById("testmask");
  1223. Inputmask("decimal", {
  1224. allowMinus: true,
  1225. integerDigits: 12,
  1226. digits: 2,
  1227. radixPoint: ",",
  1228. autoGroup: true,
  1229. groupSeparator: " ",
  1230. groupSize: 3,
  1231. rightAlign: false
  1232. }).mask(testmask);
  1233. testmask.focus();
  1234. $("#testmask").trigger("click");
  1235. $("#testmask").Type("1234567890");
  1236. $.caret(testmask, 11);
  1237. $("#testmask").SendKey(",");
  1238. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  1239. assert.equal($("#testmask")[0].inputmask._valueGet(), "1 234 567,90", "Result " + $("#testmask")[0].inputmask._valueGet());
  1240. });
  1241. qunit.test("numeric alias - value=\"-1234\" minvalue = 1000", function (assert) {
  1242. var $fixture = $("#qunit-fixture");
  1243. $fixture.append('<input type="text" id="testmask" value="-1234" />');
  1244. var testmask = document.getElementById("testmask");
  1245. Inputmask("numeric", {
  1246. allowMinus: true,
  1247. min: 1000,
  1248. max: 3000
  1249. }).mask(testmask);
  1250. assert.equal(testmask.inputmask._valueGet(), "1000", "Result " + testmask.inputmask._valueGet());
  1251. });
  1252. qunit.test("numeric alias - value=\"-1234\" minvalue = -1000", function (assert) {
  1253. var $fixture = $("#qunit-fixture");
  1254. $fixture.append('<input type="text" id="testmask" value="-1234" />');
  1255. var testmask = document.getElementById("testmask");
  1256. Inputmask("numeric", {
  1257. allowMinus: true,
  1258. min: -1000,
  1259. max: 3000
  1260. }).mask(testmask);
  1261. assert.equal(testmask.inputmask._valueGet(), "-1000", "Result " + testmask.inputmask._valueGet());
  1262. });
  1263. qunit.test("numeric alias - value=\"1000\" minvalue = 1000", function (assert) {
  1264. var $fixture = $("#qunit-fixture");
  1265. $fixture.append('<input type="text" id="testmask" value="1000" />');
  1266. var testmask = document.getElementById("testmask");
  1267. Inputmask("numeric", {
  1268. allowMinus: true,
  1269. min: 1000,
  1270. max: 3000
  1271. }).mask(testmask);
  1272. assert.equal($("#testmask")[0].inputmask._valueGet(), "1000", "Result " + $("#testmask")[0].inputmask._valueGet());
  1273. });
  1274. qunit.test("numeric alias - value=\"-1000\" minvalue = -1000", function (assert) {
  1275. var $fixture = $("#qunit-fixture");
  1276. $fixture.append('<input type="text" id="testmask" value="-1000" />');
  1277. var testmask = document.getElementById("testmask");
  1278. Inputmask("numeric", {
  1279. allowMinus: true,
  1280. min: -1000,
  1281. max: 3000
  1282. }).mask(testmask);
  1283. assert.equal($("#testmask")[0].inputmask._valueGet(), "-1000", "Result " + $("#testmask")[0].inputmask._valueGet());
  1284. });
  1285. qunit.test("decimal alias - overwrite decimal value - shahvaiz", function (assert) {
  1286. var $fixture = $("#qunit-fixture");
  1287. $fixture.append('<input type="text" id="testmask" />');
  1288. var testmask = document.getElementById("testmask");
  1289. Inputmask("decimal", {
  1290. autoGroup: true,
  1291. groupSeparator: ",",
  1292. suffix: '%'
  1293. }).mask(testmask);
  1294. $("#testmask").Type("123.123");
  1295. $.caret(testmask, 4, 7);
  1296. $("#testmask").Type("4");
  1297. assert.equal($("#testmask")[0].inputmask._valueGet(), "123.4%", "Result " + $("#testmask")[0].inputmask._valueGet());
  1298. });
  1299. qunit.test("numeric alias - placeholder: \"_\" - lucafik", function (assert) {
  1300. var done = assert.async(),
  1301. $fixture = $("#qunit-fixture");
  1302. $fixture.append('<input type="text" id="testmask" />');
  1303. var testmask = document.getElementById("testmask");
  1304. Inputmask("numeric", {
  1305. integerDigits: 2,
  1306. digits: 2,
  1307. placeholder: "_",
  1308. digitsOptional: false
  1309. }).mask(testmask);
  1310. testmask.focus();
  1311. $("#testmask").trigger("click");
  1312. setTimeout(function () {
  1313. $("#testmask").Type("12");
  1314. assert.equal($("#testmask")[0].inputmask._valueGet(), "12.__", "Result " + $("#testmask")[0].inputmask._valueGet());
  1315. done();
  1316. }, 0);
  1317. });
  1318. qunit.test("numeric alias - type 123.123 - delete all - ivodopyanov", function (assert) {
  1319. var $fixture = $("#qunit-fixture");
  1320. $fixture.append('<input type="text" id="testmask" />');
  1321. var testmask = document.getElementById("testmask");
  1322. Inputmask("numeric").mask(testmask);
  1323. $("#testmask").Type("123.123");
  1324. $.caret(testmask, 0, testmask.value.length);
  1325. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  1326. assert.equal($("#testmask")[0].inputmask._valueGet(), "", "Result " + $("#testmask")[0].inputmask._valueGet());
  1327. });
  1328. qunit.test("currency alias - 123 - isvalid - ivodopyanov", function (assert) {
  1329. var $fixture = $("#qunit-fixture");
  1330. $fixture.append('<input type="text" id="testmask" />');
  1331. var testmask = document.getElementById("testmask");
  1332. Inputmask("currency").mask(testmask);
  1333. $("#testmask").Type("123");
  1334. var isValid = Inputmask("currency").isValid(testmask.value);
  1335. assert.equal(isValid, true, "Result " + isValid);
  1336. });
  1337. qunit.test("currency alias - $ 99,999,999.00 - isvalid - ivodopyanov", function (assert) {
  1338. var $fixture = $("#qunit-fixture");
  1339. $fixture.append('<input type="text" id="testmask" />');
  1340. var testmask = document.getElementById("testmask");
  1341. Inputmask("currency").mask(testmask);
  1342. $("#testmask").Type("$ 99,999,999.00");
  1343. var isValid = Inputmask("currency").isValid(testmask.value);
  1344. assert.equal(isValid, true, "Result " + isValid);
  1345. });
  1346. qunit.test("numeric alias - digits 2 type 0.12 - gharlan", function (assert) {
  1347. var $fixture = $("#qunit-fixture");
  1348. $fixture.append('<input type="text" id="testmask" value="0.12" />');
  1349. var testmask = document.getElementById("testmask");
  1350. Inputmask("numeric", {
  1351. digits: 2
  1352. }).mask(testmask);
  1353. $.caret(testmask, 0, 1);
  1354. $("#testmask").Type("1");
  1355. assert.equal($("#testmask")[0].inputmask._valueGet(), "1.12", "Result " + $("#testmask")[0].inputmask._valueGet());
  1356. });
  1357. qunit.test("numeric alias - digits 2 select 0 type 1 - gharlan", function (assert) {
  1358. var $fixture = $("#qunit-fixture");
  1359. $fixture.append('<input type="text" id="testmask" value="0.00" />');
  1360. var testmask = document.getElementById("testmask");
  1361. Inputmask("numeric", {
  1362. digits: 2
  1363. }).mask(testmask);
  1364. $.caret(testmask, 0, 1);
  1365. $("#testmask").Type("1");
  1366. assert.equal($("#testmask")[0].inputmask._valueGet(), "1.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1367. });
  1368. qunit.test("decimal alias - value 20,00 select 2 type 5 - schmulschubiak", function (assert) {
  1369. var $fixture = $("#qunit-fixture");
  1370. $fixture.append('<input type="text" id="testmask" value="20,00" />');
  1371. var testmask = document.getElementById("testmask");
  1372. Inputmask("decimal", {
  1373. radixPoint: ",",
  1374. autoGroup: true,
  1375. groupSeparator: " ",
  1376. groupSize: 3,
  1377. allowMinus: false,
  1378. digits: 2,
  1379. rightAlign: false
  1380. }).mask(testmask);
  1381. $.caret(testmask, 0, 1);
  1382. $("#testmask").Type("5");
  1383. assert.equal($("#testmask")[0].inputmask._valueGet(), "50,00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1384. });
  1385. });