tests_numeric.js 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067
  1. module("Numeric.Extensions");
  2. test("€ Currency precision 2", function () {
  3. var $fixture = $("#qunit-fixture");
  4. $fixture.append('<input type="text" id="testmask" />');
  5. $("#testmask").inputmask("numeric", {
  6. groupSeparator: ",",
  7. placeholder: "0",
  8. autoGroup: true,
  9. digits: 2,
  10. digitsOptional: false,
  11. prefix: "€ "
  12. });
  13. $("#testmask")[0].focus();
  14. $("#testmask").Type("1234");
  15. equal($("#testmask").val(), "€ 1,234.00", "Result " + $("#testmask").val());
  16. $("#testmask").remove();
  17. });
  18. test("integer type 124 correct to 1234", function () {
  19. var $fixture = $("#qunit-fixture");
  20. $fixture.append('<input type="text" id="testmask" />');
  21. $("#testmask").inputmask("numeric", {
  22. groupSeparator: ",",
  23. autoGroup: true
  24. });
  25. $("#testmask")[0].focus();
  26. $("#testmask").Type("124");
  27. $.caret($("#testmask")[0], 2);
  28. $("#testmask").Type("3");
  29. equal($("#testmask").val(), "1,234", "Result " + $("#testmask").val());
  30. $("#testmask").remove();
  31. });
  32. test("numeric type 00000 - Webunity", function () {
  33. var $fixture = $("#qunit-fixture");
  34. $fixture.append('<input type="text" id="testmask" />');
  35. $("#testmask").inputmask("numeric", {
  36. groupSeparator: ",",
  37. autoGroup: true,
  38. integerDigits: 9
  39. });
  40. $("#testmask")[0].focus();
  41. $("#testmask").Type("00000");
  42. equal($("#testmask").val(), "0", "Result " + $("#testmask").val());
  43. $("#testmask").remove();
  44. });
  45. test("numeric -placeholder 0 type 00000 - Webunity", function () {
  46. var $fixture = $("#qunit-fixture");
  47. $fixture.append('<input type="text" id="testmask" />');
  48. $("#testmask").inputmask("numeric", {
  49. groupSeparator: ",",
  50. autoGroup: true,
  51. placeholder: "0"
  52. });
  53. $("#testmask")[0].focus();
  54. $("#testmask").Type("00000");
  55. equal($("#testmask")[0]._valueGet(), "0", "Result " + $("#testmask").val());
  56. $("#testmask").remove();
  57. });
  58. test("numeric placeholder 0 prefix € type 0.123 - Webunity", function () {
  59. var $fixture = $("#qunit-fixture");
  60. $fixture.append('<input type="text" id="testmask" />');
  61. $("#testmask").inputmask("numeric", {
  62. groupSeparator: ",",
  63. autoGroup: true,
  64. placeholder: "0",
  65. prefix: "€ "
  66. });
  67. $("#testmask")[0].focus();
  68. $("#testmask").Type("0.123");
  69. equal($("#testmask").val(), "€ 0.123", "Result " + $("#testmask").val());
  70. $("#testmask").remove();
  71. });
  72. test("numeric placeholder 0 prefix € type 0.123 - backspace - Webunity", function () {
  73. var $fixture = $("#qunit-fixture");
  74. $fixture.append('<input type="text" id="testmask" />');
  75. $("#testmask").inputmask("numeric", {
  76. groupSeparator: ",",
  77. autoGroup: true,
  78. placeholder: "0",
  79. prefix: "€ "
  80. });
  81. $("#testmask")[0].focus();
  82. $("#testmask").Type("0.123");
  83. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  84. equal($("#testmask").val(), "€ 0.12", "Result " + $("#testmask").val());
  85. $("#testmask").remove();
  86. });
  87. test("numeric placeholder 0 prefix € type 0.123 + add 1 in front - Webunity", function () {
  88. var $fixture = $("#qunit-fixture");
  89. $fixture.append('<input type="text" id="testmask" />');
  90. $("#testmask").inputmask("numeric", {
  91. groupSeparator: ",",
  92. autoGroup: true,
  93. placeholder: "0",
  94. prefix: "€ "
  95. });
  96. $("#testmask")[0].focus();
  97. $("#testmask").Type("0.123");
  98. $.caret($("#testmask")[0], 2);
  99. $("#testmask").Type("1");
  100. equal($("#testmask").val(), "€ 10.123", "Result " + $("#testmask").val());
  101. $("#testmask").remove();
  102. });
  103. test("numeric placeholder 0 autoGroup: false prefix € type 0.123 + add 123 in front - Webunity", function () {
  104. var $fixture = $("#qunit-fixture");
  105. $fixture.append('<input type="text" id="testmask" />');
  106. $("#testmask").inputmask("numeric", {
  107. groupSeparator: ",",
  108. autoGroup: false,
  109. placeholder: "0",
  110. prefix: "€ "
  111. });
  112. $("#testmask")[0].focus();
  113. $("#testmask").Type("0.123");
  114. $.caret($("#testmask")[0], 2);
  115. $("#testmask").Type("123");
  116. equal($("#testmask").val(), "€ 1230.123", "Result " + $("#testmask").val());
  117. $("#testmask").remove();
  118. });
  119. test("numeric placeholder 0 autoGroup: true prefix € type 0.123 + add 123 in front - Webunity", function () {
  120. var $fixture = $("#qunit-fixture");
  121. $fixture.append('<input type="text" id="testmask" />');
  122. $("#testmask").inputmask("numeric", {
  123. groupSeparator: ",",
  124. autoGroup: true,
  125. placeholder: "0",
  126. prefix: "€ "
  127. });
  128. $("#testmask")[0].focus();
  129. $("#testmask").Type("0.123");
  130. $.caret($("#testmask")[0], 2);
  131. $("#testmask").Type("123");
  132. equal($("#testmask").val(), "€ 1,230.123", "Result " + $("#testmask").val());
  133. $("#testmask").remove();
  134. });
  135. test("integer alias with integerDigits 9 & autogroup - type 123456789 - gigermocas", function () {
  136. var $fixture = $("#qunit-fixture");
  137. $fixture.append('<input type="text" id="testmask" />');
  138. $("#testmask").inputmask("integer", {
  139. groupSeparator: ",",
  140. autoGroup: true,
  141. integerDigits: 9
  142. });
  143. $("#testmask")[0].focus();
  144. $("#testmask").Type("123456789");
  145. equal($("#testmask").val(), "123,456,789", "Result " + $("#testmask").val());
  146. $("#testmask").remove();
  147. });
  148. test("integer alias with integerDigits 9 & autogroup - type 1234567890123456789 - gigermocas", function () {
  149. var $fixture = $("#qunit-fixture");
  150. $fixture.append('<input type="text" id="testmask" />');
  151. $("#testmask").inputmask("integer", {
  152. groupSeparator: ",",
  153. autoGroup: true,
  154. integerDigits: 9
  155. });
  156. $("#testmask")[0].focus();
  157. $("#testmask").Type("1234567890123456789");
  158. equal($("#testmask").val(), "123,456,789", "Result " + $("#testmask").val());
  159. $("#testmask").remove();
  160. });
  161. test("integer alias with integerDigits 4 & autogroup - type 1234567890123456789 - gigermocas", function () {
  162. var $fixture = $("#qunit-fixture");
  163. $fixture.append('<input type="text" id="testmask" />');
  164. $("#testmask").inputmask("integer", {
  165. groupSeparator: ",",
  166. autoGroup: true,
  167. integerDigits: 4
  168. });
  169. $("#testmask")[0].focus();
  170. $("#testmask").Type("1234567890123456789");
  171. equal($("#testmask").val(), "1,234", "Result " + $("#testmask").val());
  172. $("#testmask").remove();
  173. });
  174. test("decimal alias with integerDigits 9 & autogroup - type 123456789 - gigermocas", function () {
  175. var $fixture = $("#qunit-fixture");
  176. $fixture.append('<input type="text" id="testmask" />');
  177. $("#testmask").inputmask("decimal", {
  178. groupSeparator: ",",
  179. autoGroup: true,
  180. integerDigits: 9
  181. });
  182. $("#testmask")[0].focus();
  183. $("#testmask").Type("123456789");
  184. equal($("#testmask").val(), "123,456,789", "Result " + $("#testmask").val());
  185. $("#testmask").remove();
  186. });
  187. test("decimal alias with integerDigits 4 & autogroup - type 1234 - gigermocas", function () {
  188. var $fixture = $("#qunit-fixture");
  189. $fixture.append('<input type="text" id="testmask" />');
  190. $("#testmask").inputmask("decimal", {
  191. groupSeparator: ",",
  192. autoGroup: true,
  193. integerDigits: 4
  194. });
  195. $("#testmask")[0].focus();
  196. $("#testmask").Type("1234");
  197. equal($("#testmask").val(), "1,234", "Result " + $("#testmask").val());
  198. $("#testmask").remove();
  199. });
  200. test("numeric alias with allowMinus:false type=text - vijjj", function () {
  201. var $fixture = $("#qunit-fixture");
  202. $fixture.append('<input type="text" id="testmask" />');
  203. $("#testmask").inputmask("numeric", {
  204. radixPoint: ".",
  205. integerDigits: 6,
  206. allowMinus: false
  207. });
  208. $("#testmask")[0].focus();
  209. $("#testmask").Type("123456");
  210. $.caret($("#testmask"), 0);
  211. $("#testmask").SendKey("-");
  212. equal($("#testmask").val(), "123456", "Result " + $("#testmask").val());
  213. $("#testmask").remove();
  214. });
  215. test("numeric alias with allowMinus:false type=number - mask not applied - MartinVerges", function () {
  216. var $fixture = $("#qunit-fixture");
  217. $fixture.append('<input type="number" id="testmask" />');
  218. $("#testmask").inputmask("numeric", {
  219. radixPoint: ".",
  220. integerDigits: 6,
  221. allowMinus: false
  222. });
  223. $("#testmask")[0].focus();
  224. $("#testmask").Type("123456");
  225. $("#testmask").SendKey("-");
  226. //IE7 does not know type=number and treats as type=text
  227. ok($("#testmask").val() == "" || $("#testmask").val() == "123456", "Result " + $("#testmask").val());
  228. $("#testmask").remove();
  229. });
  230. test("inputmask(\"numeric\", { prefix: \"€ \" }\") - input 12345.12", function () {
  231. var $fixture = $("#qunit-fixture");
  232. $fixture.append('<input type="text" id="testmask" />');
  233. $("#testmask").inputmask("numeric", { prefix: "€ " });
  234. $("#testmask")[0].focus();
  235. $("#testmask").Type("12345.12");
  236. equal($("#testmask").val(), "€ 12345.12", "Result " + $("#testmask").val());
  237. $("#testmask").remove();
  238. });
  239. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123", function () {
  240. var $fixture = $("#qunit-fixture");
  241. $fixture.append('<input type="text" id="testmask" />');
  242. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: "," });
  243. $("#testmask")[0].focus();
  244. $("#testmask").SendKey("1");
  245. $("#testmask").SendKey("2");
  246. $("#testmask").SendKey("3");
  247. $("#testmask").SendKey("4");
  248. $("#testmask").SendKey("5");
  249. $("#testmask").SendKey(".");
  250. $("#testmask").SendKey("1");
  251. $("#testmask").SendKey("2");
  252. $("#testmask").SendKey("3");
  253. equal($("#testmask").val(), "12,345.123", "Result " + $("#testmask").val());
  254. $("#testmask").remove();
  255. });
  256. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + remove .123", function () {
  257. var $fixture = $("#qunit-fixture");
  258. $fixture.append('<input type="text" id="testmask" />');
  259. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: ",", decimalProtect: true });
  260. $("#testmask")[0].focus();
  261. $("#testmask").Type("12345.123");
  262. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  263. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  264. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  265. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  266. equal($("#testmask").val(), "12,345", "Result " + $("#testmask").val());
  267. $("#testmask").remove();
  268. });
  269. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123 + replace .123 => .789", function () {
  270. var $fixture = $("#qunit-fixture");
  271. $fixture.append('<input type="text" id="testmask" />');
  272. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: "," });
  273. $("#testmask")[0].focus();
  274. $("#testmask").Type("12345.123");
  275. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  276. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  277. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  278. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  279. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  280. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  281. $("#testmask").Type(".789");
  282. equal($("#testmask").val(), "12,345.789", "Result " + $("#testmask").val());
  283. $("#testmask").remove();
  284. });
  285. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123 + replace .123 => .789", function () {
  286. var $fixture = $("#qunit-fixture");
  287. $fixture.append('<input type="text" id="testmask" />');
  288. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: "," });
  289. $("#testmask")[0].focus();
  290. $("#testmask").Type("12345.123");
  291. //$("#testmask").click();
  292. $.caret($("#testmask"), 6, 10);
  293. $("#testmask").Type(".789");
  294. equal($("#testmask").val(), "12,345.789", "Result " + $("#testmask").val());
  295. $("#testmask").remove();
  296. });
  297. test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + remove .123", function () {
  298. var $fixture = $("#qunit-fixture");
  299. $fixture.append('<input type="text" id="testmask" />');
  300. $("#testmask").inputmask("decimal", { autoGroup: false, groupSeparator: ",", decimalProtect: true });
  301. $("#testmask")[0].focus();
  302. $("#testmask").Type("12345.123");
  303. //$("#testmask").click();
  304. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  305. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  306. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  307. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  308. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  309. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  310. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  311. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  312. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  313. $("#testmask").remove();
  314. });
  315. test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: false }\") - input 12345.123 + remove .123", function () {
  316. var $fixture = $("#qunit-fixture");
  317. $fixture.append('<input type="text" id="testmask" />');
  318. $("#testmask").inputmask("decimal", { autoGroup: false, groupSeparator: ",", decimalProtect: false });
  319. $("#testmask")[0].focus();
  320. $("#testmask").Type("12345.123");
  321. //$("#testmask").click();
  322. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  323. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  324. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  325. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  326. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  327. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  328. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  329. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  330. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  331. $("#testmask").remove();
  332. });
  333. test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + replace .123 => .789", function () {
  334. var $fixture = $("#qunit-fixture");
  335. $fixture.append('<input type="text" id="testmask" />');
  336. $("#testmask").inputmask("decimal", { autoGroup: false, groupSeparator: ",", decimalProtect: true });
  337. $("#testmask")[0].focus();
  338. $("#testmask").Type("12345.123");
  339. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  340. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  341. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  342. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  343. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  344. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  345. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  346. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  347. $("#testmask").Type(".789");
  348. equal($("#testmask").val(), "12345.789", "Result " + $("#testmask").val());
  349. $("#testmask").remove();
  350. });
  351. test("inputmask(\"decimal\") - maxlength 10", function () {
  352. var $fixture = $("#qunit-fixture");
  353. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  354. $("#testmask").inputmask("decimal");
  355. $("#testmask")[0].focus();
  356. $("#testmask").Type("123456789012345");
  357. equal($("#testmask").val(), "1234567890", "Result " + $("#testmask").val());
  358. $("#testmask").remove();
  359. });
  360. test("inputmask(\"decimal, { repeat: 15 }\") - maxlength 10", function () {
  361. var $fixture = $("#qunit-fixture");
  362. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  363. $("#testmask").inputmask("decimal", { repeat: 15 });
  364. $("#testmask")[0].focus();
  365. $("#testmask").Type("123456789012345");
  366. equal($("#testmask").val(), "1234567890", "Result " + $("#testmask").val());
  367. $("#testmask").remove();
  368. });
  369. test("inputmask(\"decimal, { repeat: 5, decimalProtect: true }\") - maxlength 10", function () {
  370. var $fixture = $("#qunit-fixture");
  371. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  372. $("#testmask").inputmask("decimal", { repeat: 5, decimalProtect: true });
  373. $("#testmask")[0].focus();
  374. $("#testmask").Type("123456789012345");
  375. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  376. $("#testmask").remove();
  377. });
  378. test("inputmask(\"decimal, { repeat: 5, decimalProtect: false }\") - maxlength 10", function () {
  379. var $fixture = $("#qunit-fixture");
  380. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  381. $("#testmask").inputmask("decimal", { repeat: 5, decimalProtect: false });
  382. $("#testmask")[0].focus();
  383. $("#testmask").Type("123456789012345");
  384. equal($("#testmask").val(), "12345.6789", "Result " + $("#testmask").val());
  385. $("#testmask").remove();
  386. });
  387. test("inputmask(\"decimal\")", function () {
  388. var $fixture = $("#qunit-fixture");
  389. $fixture.append('<input type="text" id="testmask" />');
  390. $("#testmask").inputmask("decimal");
  391. $("#testmask")[0].focus();
  392. $("#testmask").Type("1234567890");
  393. $.caret($("#testmask"), 0, 10);
  394. $("#testmask").Type("12345");
  395. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  396. $("#testmask").remove();
  397. });
  398. test("inputmask(\"decimal\") - value=\"1234567890\"", function () {
  399. var $fixture = $("#qunit-fixture");
  400. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  401. $("#testmask").inputmask("decimal");
  402. $("#testmask")[0].focus();
  403. $.caret($("#testmask"), 0, 10);
  404. $("#testmask").Type("12345");
  405. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  406. $("#testmask").remove();
  407. });
  408. test("inputmask(\"decimal\")", function () {
  409. var $fixture = $("#qunit-fixture");
  410. $fixture.append('<input type="text" id="testmask" />');
  411. $("#testmask").inputmask("decimal");
  412. $("#testmask")[0].focus();
  413. $("#testmask").Type("1234567890");
  414. $.caret($("#testmask"), 3, 5);
  415. $("#testmask").SendKey("0");
  416. equal($("#testmask").val(), "123067890", "Result " + $("#testmask").val());
  417. $("#testmask").remove();
  418. });
  419. test("inputmask(\"decimal\") - value=\"1234567890\"", function () {
  420. var $fixture = $("#qunit-fixture");
  421. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  422. $("#testmask").inputmask("decimal");
  423. $("#testmask")[0].focus();
  424. $.caret($("#testmask"), 3, 5);
  425. $("#testmask").SendKey("0");
  426. equal($("#testmask").val(), "123067890", "Result " + $("#testmask").val());
  427. $("#testmask").remove();
  428. });
  429. test("inputmask(\"decimal\") - value=\"123.45\" Replace last integer", function () {
  430. var $fixture = $("#qunit-fixture");
  431. $fixture.append('<input type="text" id="testmask" />');
  432. $("#testmask").inputmask("decimal", { digits: 2 });
  433. $("#testmask")[0].focus();
  434. $("#testmask").Type("123.45");
  435. $.caret($("#testmask"), 2, 3);
  436. $("#testmask").SendKey("7");
  437. equal($("#testmask").val(), "127.45", "Result " + $("#testmask").val());
  438. $("#testmask").remove();
  439. });
  440. test("inputmask(\"decimal\", { digits: 2 }) - value=\"123\" - RomeroMsk", function () {
  441. var $fixture = $("#qunit-fixture");
  442. $fixture.append('<input type="text" id="testmask" />');
  443. $("#testmask").inputmask("decimal", { digits: 2 });
  444. $("#testmask")[0].focus();
  445. $("#testmask").Type("123");
  446. $.caret($("#testmask"), 0, 3);
  447. $("#testmask").SendKey(",,..");
  448. $("#testmask").SendKey($.inputmask.keyCode.RIGHT);
  449. $("#testmask").SendKey($.inputmask.keyCode.RIGHT); //needed in test
  450. $("#testmask").SendKey($.inputmask.keyCode.RIGHT); //needed in test
  451. $("#testmask").Type("45");
  452. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  453. $("#testmask").remove();
  454. });
  455. test("inputmask - Multiple inputs masked, Integer mask doesn't allow typing - #402 - albatrocity", function () {
  456. var $fixture = $("#qunit-fixture");
  457. $fixture.append('<input type="text" id="testmask" />');
  458. $fixture.append('<input type="text" id="testmask2" />');
  459. $("#testmask").inputmask("integer", {
  460. autoGroup: true,
  461. groupSeparator: ",",
  462. groupSize: 3
  463. });
  464. $("#testmask2").inputmask("(999)-999-9999");
  465. $("#testmask")[0].focus();
  466. $("#testmask").Type("12345");
  467. equal($("#testmask").val(), "12,345", "Result " + $("#testmask").val());
  468. $("#testmask").remove();
  469. $("#testmask2").remove();
  470. });
  471. test("decimal alias with groupseparator delete - YoussefTaghlabi", function () {
  472. var $fixture = $("#qunit-fixture");
  473. $fixture.append('<input type="text" id="testmask" />');
  474. $("#testmask").inputmask("decimal", {
  475. radixPoint: ".",
  476. groupSeparator: ",",
  477. groupSize: 3,
  478. digits: 2,
  479. autoGroup: true,
  480. allowPlus: false,
  481. allowMinus: true
  482. });
  483. $("#testmask")[0].focus();
  484. $("#testmask").Type("1234567");
  485. $.caret($("#testmask"), 0);
  486. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  487. equal($("#testmask").val(), "234,567", "Result " + $("#testmask").val());
  488. $("#testmask").remove();
  489. });
  490. test("decimal alias with groupseparator backspace - YoussefTaghlabi", function () {
  491. var $fixture = $("#qunit-fixture");
  492. $fixture.append('<input type="text" id="testmask" />');
  493. $("#testmask").inputmask("decimal", {
  494. radixPoint: ".",
  495. groupSeparator: ",",
  496. groupSize: 3,
  497. digits: 2,
  498. autoGroup: true,
  499. allowPlus: false,
  500. allowMinus: true
  501. });
  502. $("#testmask")[0].focus();
  503. $("#testmask").Type("1234567");
  504. $.caret($("#testmask"), 1);
  505. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  506. equal($("#testmask").val(), "234,567", "Result " + $("#testmask").val());
  507. $("#testmask").remove();
  508. });
  509. test("decimal alias with plus or minus & autogroup - type -123456 - YoussefTaghlabi", function () {
  510. var $fixture = $("#qunit-fixture");
  511. $fixture.append('<input type="text" id="testmask" />');
  512. $("#testmask").inputmask("decimal", {
  513. radixPoint: ".",
  514. groupSeparator: ",",
  515. groupSize: 3,
  516. digits: 2,
  517. autoGroup: true,
  518. allowPlus: true,
  519. allowMinus: true
  520. });
  521. $("#testmask")[0].focus();
  522. $("#testmask").Type("-123456");
  523. equal($("#testmask").val(), "-123,456", "Result " + $("#testmask").val());
  524. $("#testmask").remove();
  525. });
  526. test("decimal alias with plus or minus & autogroup - type 123465 - - YoussefTaghlabi", function () {
  527. var $fixture = $("#qunit-fixture");
  528. $fixture.append('<input type="text" id="testmask" />');
  529. $("#testmask").inputmask("decimal", {
  530. radixPoint: ".",
  531. groupSeparator: ",",
  532. groupSize: 3,
  533. digits: 2,
  534. autoGroup: true,
  535. allowPlus: true,
  536. allowMinus: true
  537. });
  538. $("#testmask")[0].focus();
  539. $("#testmask").Type("123456");
  540. $.caret($("#testmask"), 0);
  541. $("#testmask").SendKey("-");
  542. equal($("#testmask").val(), "-123,456", "Result " + $("#testmask").val());
  543. $("#testmask").remove();
  544. });
  545. test("decimal alias with plus or minus & autogroup", function () {
  546. var $fixture = $("#qunit-fixture");
  547. $fixture.append('<input type="text" id="testmask" />');
  548. $("#testmask").inputmask("decimal", {
  549. radixPoint: ".",
  550. groupSeparator: ",",
  551. groupSize: 3,
  552. digits: 2,
  553. autoGroup: true,
  554. allowPlus: true,
  555. allowMinus: true
  556. });
  557. $("#testmask")[0].focus();
  558. $("#testmask").Type("1234.56");
  559. equal($("#testmask").val(), "1,234.56", "Result " + $("#testmask").val());
  560. $("#testmask").remove();
  561. });
  562. test("decimal alias set value with val() - kochelmonster", function () {
  563. var $fixture = $("#qunit-fixture");
  564. $fixture.append('<input type="text" id="testmask" />');
  565. $("#testmask").inputmask("decimal", {
  566. radixPoint: ",",
  567. groupSeparator: ".",
  568. digits: 2,
  569. autoGroup: true,
  570. suffix: ' €'
  571. });
  572. $("#testmask").val("39.399.392,22 €");
  573. equal($("#testmask").val(), "39.399.392,22 €", "Result " + $("#testmask").val());
  574. $("#testmask").remove();
  575. });
  576. test("inputmask(\"decimal\") - value=\"123.1\" blur digitsoptional", function () {
  577. var $fixture = $("#qunit-fixture");
  578. $fixture.append('<input type="text" id="testmask" />');
  579. $("#testmask").inputmask("decimal", { digits: 3 });
  580. $("#testmask")[0].focus();
  581. $("#testmask").Type("123.1");
  582. $("#testmask").blur();
  583. equal($("#testmask").val(), "123.1", "Result " + $("#testmask").val());
  584. $("#testmask").remove();
  585. });
  586. test("inputmask(\"decimal\") - value=\"123.1\" blur", function () {
  587. var $fixture = $("#qunit-fixture");
  588. $fixture.append('<input type="text" id="testmask" />');
  589. $("#testmask").inputmask("decimal", { digits: 3, digitsOptional: false });
  590. $("#testmask")[0].focus();
  591. $("#testmask").Type("123.1");
  592. $("#testmask").blur();
  593. equal($("#testmask").val(), "123.100", "Result " + $("#testmask").val());
  594. $("#testmask").remove();
  595. });
  596. asyncTest("currency alias - 200000 => replace 2 to 3", function () {
  597. var $fixture = $("#qunit-fixture");
  598. $fixture.append('<input type="text" id="testmask" />');
  599. $("#testmask").inputmask("currency");
  600. $("#testmask")[0].focus();
  601. $("#testmask").click();
  602. setTimeout(function () {
  603. $("#testmask").Type("200000");
  604. $.caret($("#testmask"), 2, 3);
  605. $("#testmask").Type("3");
  606. start();
  607. equal($("#testmask").val(), "$ 300,000.00", "Result " + $("#testmask").val());
  608. $("#testmask").remove();
  609. }, 5);
  610. });
  611. test("inputmask(\"integer\") - -0 - laxmikantG", function () {
  612. var $fixture = $("#qunit-fixture");
  613. $fixture.append('<input type="text" id="testmask" />');
  614. $("#testmask").inputmask("integer", { placeholder: "0" });
  615. $("#testmask")[0].focus();
  616. $("#testmask").Type("-0");
  617. $("#testmask").blur();
  618. equal($("#testmask").val(), "", "Result " + $("#testmask").val());
  619. $("#testmask").remove();
  620. });
  621. test("inputmask(\"integer\") - 123- - laxmikantG", function () {
  622. var $fixture = $("#qunit-fixture");
  623. $fixture.append('<input type="text" id="testmask" />');
  624. $("#testmask").inputmask("integer", { placeholder: "0" });
  625. $("#testmask")[0].focus();
  626. $("#testmask").Type("123-");
  627. equal($("#testmask").val(), "-123", "Result " + $("#testmask").val());
  628. $("#testmask").remove();
  629. });
  630. test("inputmask(\"decimal\") - val(\"-5000,77\"); - ManRueda", function () {
  631. var $fixture = $("#qunit-fixture");
  632. $fixture.append('<input type="text" id="testmask" />');
  633. $("#testmask").inputmask('decimal', {
  634. integerDigits: 10,
  635. groupSeparator: '.',
  636. autoGroup: true,
  637. digits: 2,
  638. radixPoint: ',',
  639. groupSize: 3
  640. });
  641. $("#testmask").val("-5000,77");
  642. equal($("#testmask").val(), "-5.000,77", "Result " + $("#testmask").val());
  643. $("#testmask").remove();
  644. });
  645. test("inputmask(\"decimal\") - -0 - ManRueda", function () {
  646. var $fixture = $("#qunit-fixture");
  647. $fixture.append('<input type="text" id="testmask" />');
  648. $("#testmask").inputmask('decimal', {
  649. integerDigits: 10,
  650. groupSeparator: '.',
  651. autoGroup: true,
  652. digits: 2,
  653. radixPoint: ',',
  654. groupSize: 3
  655. });
  656. $("#testmask").val("-0");
  657. $("#testmask").blur();
  658. equal($("#testmask").val(), "0", "Result " + $("#testmask").val());
  659. $("#testmask").remove();
  660. });
  661. test("inputmask(\"integer\") - -5.000,77 - DrSammyD", function () {
  662. var $fixture = $("#qunit-fixture");
  663. $fixture.append('<input type="text" id="testmask" />');
  664. $("#testmask").inputmask('integer', { placeholder: "0" });
  665. $("#testmask").val("-5.000,77");
  666. $("#testmask").blur();
  667. equal($("#testmask").val(), "-5000", "Result " + $("#testmask").val());
  668. $("#testmask").remove();
  669. });
  670. asyncTest("inputmask(\"decimal\ placeholder :\"\" digitsoptional: false) - 123 - loostro", function () {
  671. var $fixture = $("#qunit-fixture");
  672. $fixture.append('<input type="text" id="testmask" value="0,00" />');
  673. $("#testmask").inputmask("decimal", {
  674. radixPoint: ",",
  675. digits: 2,
  676. digitsOptional: false,
  677. autoGroup: true,
  678. groupSeparator: " ",
  679. groupSize: 3,
  680. allowPlus: false,
  681. allowMinus: false,
  682. });
  683. $("#testmask")[0].focus();
  684. $("#testmask").click();
  685. setTimeout(function() {
  686. $("#testmask").Type("123");
  687. start();
  688. equal($("#testmask").val(), "123,00", "Result " + $("#testmask").val());
  689. $("#testmask").remove();
  690. }, 0);
  691. });
  692. asyncTest("inputmask(\"decimal\ placeholder :\"0\" digitsoptional: false) - .12 - YodaJM", function () {
  693. var $fixture = $("#qunit-fixture");
  694. $fixture.append('<input type="text" id="testmask" />');
  695. $("#testmask").inputmask('decimal', {
  696. digits: 2,
  697. placeholder: "0",
  698. digitsOptional: false
  699. });
  700. $("#testmask")[0].focus();
  701. $.caret($("#testmask"), 0, 4);
  702. setTimeout(function () {
  703. $("#testmask").Type(".12");
  704. start();
  705. equal($("#testmask").val(), "0.12", "Result " + $("#testmask").val());
  706. $("#testmask").remove();
  707. }, 0);
  708. });
  709. test("inputmask(\"decimal\") - '8100000.00' - ManRueda", function () {
  710. var $fixture = $("#qunit-fixture");
  711. $fixture.append('<input type="text" id="testmask" />');
  712. $("#testmask").inputmask('decimal', {
  713. integerDigits: 6,
  714. groupSeparator: '.',
  715. autoGroup: true,
  716. digits: 2,
  717. radixPoint: ',',
  718. groupSize: 3
  719. });
  720. $("#testmask").val("8100000.00");
  721. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  722. $("#testmask").remove();
  723. });
  724. test("inputmask(\"decimal\") - '12345678.12' - ManRueda", function () {
  725. var $fixture = $("#qunit-fixture");
  726. $fixture.append('<input type="text" id="testmask" />');
  727. $("#testmask").inputmask('decimal', {
  728. integerDigits: 6,
  729. groupSeparator: '.',
  730. autoGroup: true,
  731. digits: 2,
  732. radixPoint: ',',
  733. groupSize: 3
  734. });
  735. $("#testmask").val("12345678.12");
  736. equal($("#testmask").val(), "123.456,12", "Result " + $("#testmask").val());
  737. $("#testmask").remove();
  738. });
  739. test("inputmask(\"decimal\") - '8100000,00' - ManRueda", function () {
  740. var $fixture = $("#qunit-fixture");
  741. $fixture.append('<input type="text" id="testmask" />');
  742. $("#testmask").inputmask('decimal', {
  743. integerDigits: 6,
  744. groupSeparator: '.',
  745. autoGroup: true,
  746. digits: 2,
  747. radixPoint: ',',
  748. groupSize: 3
  749. });
  750. $("#testmask").val("8100000,00");
  751. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  752. $("#testmask").remove();
  753. });
  754. test("inputmask(\"decimal\") - 8100000.00 - ManRueda", function () {
  755. var $fixture = $("#qunit-fixture");
  756. $fixture.append('<input type="text" id="testmask" />');
  757. $("#testmask").inputmask('decimal', {
  758. integerDigits: 6,
  759. groupSeparator: '.',
  760. autoGroup: true,
  761. digits: 2,
  762. radixPoint: ',',
  763. groupSize: 3
  764. });
  765. $("#testmask").val(8100000.00);
  766. equal($("#testmask").val(), "810.000", "Result " + $("#testmask").val());
  767. $("#testmask").remove();
  768. });
  769. test("inputmask(\"decimal\") - 8100000.00 digitsoptional false - ManRueda", function () {
  770. var $fixture = $("#qunit-fixture");
  771. $fixture.append('<input type="text" id="testmask" />');
  772. $("#testmask").inputmask('decimal', {
  773. integerDigits: 6,
  774. groupSeparator: '.',
  775. autoGroup: true,
  776. digits: 2,
  777. digitsOptional: false,
  778. radixPoint: ',',
  779. groupSize: 3
  780. });
  781. $("#testmask").val(8100000.00);
  782. $("#testmask").blur();
  783. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  784. $("#testmask").remove();
  785. });
  786. test("inputmask(\"decimal\") - 810000.00 - ManRueda", function () {
  787. var $fixture = $("#qunit-fixture");
  788. $fixture.append('<input type="text" id="testmask" />');
  789. $("#testmask").inputmask('decimal', {
  790. integerDigits: 6,
  791. groupSeparator: '.',
  792. autoGroup: true,
  793. digits: 2,
  794. radixPoint: ',',
  795. groupSize: 3
  796. });
  797. $("#testmask").val('810000.00');
  798. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  799. $("#testmask").remove();
  800. });
  801. test("inputmask(\"decimal\") - 123456 78 - babupca", function () {
  802. var $fixture = $("#qunit-fixture");
  803. $fixture.append('<input type="text" id="testmask" />');
  804. $("#testmask").inputmask({
  805. alias: "decimal",
  806. integerDigits: 6,
  807. digits: 3,
  808. allowMinus: false,
  809. digitsOptional: false,
  810. placeholder: "0"
  811. });
  812. $("#testmask")[0].focus();
  813. $("#testmask").Type("123456");
  814. $.caret($("#testmask"), 8);
  815. $("#testmask").Type("78");
  816. $.caret($("#testmask"), 5);
  817. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  818. equal($("#testmask").val(), "12346.078", "Result " + $("#testmask").val());
  819. $("#testmask").remove();
  820. });
  821. asyncTest("currency alias - 1234 => del 1", function () {
  822. var $fixture = $("#qunit-fixture");
  823. $fixture.append('<input type="text" id="testmask" />');
  824. $("#testmask").inputmask("currency");
  825. $("#testmask")[0].focus();
  826. $("#testmask").click();
  827. setTimeout(function () {
  828. $("#testmask").Type("1234");
  829. $.caret($("#testmask"), 3);
  830. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  831. start();
  832. equal($("#testmask").val(), "$ 234.00", "Result " + $("#testmask").val());
  833. $("#testmask").remove();
  834. }, 5);
  835. });
  836. asyncTest("currency alias - 0.02 => type 1 in integer part", function () {
  837. var $fixture = $("#qunit-fixture");
  838. $fixture.append('<input type="text" id="testmask" />');
  839. $("#testmask").inputmask("currency");
  840. $("#testmask")[0].focus();
  841. $("#testmask").click();
  842. setTimeout(function () {
  843. $("#testmask").Type("0.02");
  844. $.caret($("#testmask"), 3);
  845. $("#testmask").SendKey("1");
  846. start();
  847. equal($("#testmask").val(), "$ 1.02", "Result " + $("#testmask").val());
  848. $("#testmask").remove();
  849. }, 5);
  850. });
  851. asyncTest("currency alias - 0.02 => position before 0 type 1 in integer part", function () {
  852. var $fixture = $("#qunit-fixture");
  853. $fixture.append('<input type="text" id="testmask" />');
  854. $("#testmask").inputmask("currency");
  855. $("#testmask")[0].focus();
  856. $("#testmask").click();
  857. setTimeout(function () {
  858. $("#testmask").Type("0.02");
  859. $.caret($("#testmask"), 2);
  860. $("#testmask").SendKey("1");
  861. start();
  862. equal($("#testmask").val(), "$ 10.02", "Result " + $("#testmask").val());
  863. $("#testmask").remove();
  864. }, 5);
  865. });
  866. asyncTest("currency alias - 1.23 => del 1 in integer part", function () {
  867. var $fixture = $("#qunit-fixture");
  868. $fixture.append('<input type="text" id="testmask" />');
  869. $("#testmask").inputmask("currency");
  870. $("#testmask")[0].focus();
  871. $("#testmask").click();
  872. setTimeout(function () {
  873. $("#testmask").Type("1.23");
  874. $.caret($("#testmask"), 3);
  875. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  876. start();
  877. equal($("#testmask").val(), "$ 0.23", "Result " + $("#testmask").val());
  878. $("#testmask").remove();
  879. }, 5);
  880. });