tests_numeric.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477
  1. module("Numeric.Extensions");
  2. test("integer alias with integerDigits 9 & autogroup - type 123456789 - gigermocas", function () {
  3. var $fixture = $("#qunit-fixture");
  4. $fixture.append('<input type="text" id="testmask" />');
  5. $("#testmask").inputmask("integer", {
  6. groupSeparator: ",",
  7. autoGroup: true,
  8. integerDigits: 9
  9. });
  10. $("#testmask")[0].focus();
  11. $("#testmask").Type("123456789");
  12. equal($("#testmask").val(), "123,456,789", "Result " + $("#testmask").val());
  13. $("#testmask").remove();
  14. });
  15. test("integer alias with integerDigits 9 & autogroup - type 1234567890123456789 - gigermocas", function () {
  16. var $fixture = $("#qunit-fixture");
  17. $fixture.append('<input type="text" id="testmask" />');
  18. $("#testmask").inputmask("integer", {
  19. groupSeparator: ",",
  20. autoGroup: true,
  21. integerDigits: 9
  22. });
  23. $("#testmask")[0].focus();
  24. $("#testmask").Type("1234567890123456789");
  25. equal($("#testmask").val(), "123,456,789", "Result " + $("#testmask").val());
  26. $("#testmask").remove();
  27. });
  28. test("integer alias with integerDigits 4 & autogroup - type 1234567890123456789 - gigermocas", function () {
  29. var $fixture = $("#qunit-fixture");
  30. $fixture.append('<input type="text" id="testmask" />');
  31. $("#testmask").inputmask("integer", {
  32. groupSeparator: ",",
  33. autoGroup: true,
  34. integerDigits: 4
  35. });
  36. $("#testmask")[0].focus();
  37. $("#testmask").Type("1234567890123456789");
  38. equal($("#testmask").val(), "1,234", "Result " + $("#testmask").val());
  39. $("#testmask").remove();
  40. });
  41. test("decimal alias with integerDigits 9 & autogroup - type 123456789 - gigermocas", function () {
  42. var $fixture = $("#qunit-fixture");
  43. $fixture.append('<input type="text" id="testmask" />');
  44. $("#testmask").inputmask("decimal", {
  45. groupSeparator: ",",
  46. autoGroup: true,
  47. integerDigits: 9
  48. });
  49. $("#testmask")[0].focus();
  50. $("#testmask").Type("123456789");
  51. equal($("#testmask").val(), "123,456,789", "Result " + $("#testmask").val());
  52. $("#testmask").remove();
  53. });
  54. test("decimal alias with integerDigits 4 & autogroup - type 1234 - gigermocas", function () {
  55. var $fixture = $("#qunit-fixture");
  56. $fixture.append('<input type="text" id="testmask" />');
  57. $("#testmask").inputmask("decimal", {
  58. groupSeparator: ",",
  59. autoGroup: true,
  60. integerDigits: 4
  61. });
  62. $("#testmask")[0].focus();
  63. $("#testmask").Type("1234");
  64. equal($("#testmask").val(), "1,234", "Result " + $("#testmask").val());
  65. $("#testmask").remove();
  66. });
  67. test("numeric alias with allowMinus:false type=text - vijjj", function () {
  68. var $fixture = $("#qunit-fixture");
  69. $fixture.append('<input type="text" id="testmask" />');
  70. $("#testmask").inputmask("numeric", {
  71. radixPoint: ".",
  72. integerDigits: 6,
  73. allowMinus: false
  74. });
  75. $("#testmask")[0].focus();
  76. $("#testmask").Type("123456");
  77. caret($("#testmask"), 0);
  78. $("#testmask").SendKey("-");
  79. equal($("#testmask").val(), "123456", "Result " + $("#testmask").val());
  80. $("#testmask").remove();
  81. });
  82. test("numeric alias with allowMinus:false type=number - mask not applied - MartinVerges", function () {
  83. var $fixture = $("#qunit-fixture");
  84. $fixture.append('<input type="number" id="testmask" />');
  85. $("#testmask").inputmask("numeric", {
  86. radixPoint: ".",
  87. integerDigits: 6,
  88. allowMinus: false
  89. });
  90. $("#testmask")[0].focus();
  91. $("#testmask").Type("123456");
  92. $("#testmask").SendKey("-");
  93. equal($("#testmask").val(), "", "Result " + $("#testmask").val());
  94. $("#testmask").remove();
  95. });
  96. test("inputmask(\"numeric\", { prefix: \"€ \" }\") - input 12345.12", function () {
  97. var $fixture = $("#qunit-fixture");
  98. $fixture.append('<input type="text" id="testmask" />');
  99. $("#testmask").inputmask("numeric", { prefix: "€ " });
  100. $("#testmask")[0].focus();
  101. $("#testmask").Type("12345.12");
  102. equal($("#testmask").val(), "€ 12345.12", "Result " + $("#testmask").val());
  103. $("#testmask").remove();
  104. });
  105. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123", function () {
  106. var $fixture = $("#qunit-fixture");
  107. $fixture.append('<input type="text" id="testmask" />');
  108. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: "," });
  109. $("#testmask")[0].focus();
  110. $("#testmask").SendKey("1");
  111. $("#testmask").SendKey("2");
  112. $("#testmask").SendKey("3");
  113. $("#testmask").SendKey("4");
  114. $("#testmask").SendKey("5");
  115. $("#testmask").SendKey(".");
  116. $("#testmask").SendKey("1");
  117. $("#testmask").SendKey("2");
  118. $("#testmask").SendKey("3");
  119. equal($("#testmask").val(), "12,345.123", "Result " + $("#testmask").val());
  120. $("#testmask").remove();
  121. });
  122. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123 + remove .123", function () {
  123. var $fixture = $("#qunit-fixture");
  124. $fixture.append('<input type="text" id="testmask" />');
  125. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: "," });
  126. $("#testmask")[0].focus();
  127. $("#testmask").Type("12345.123");
  128. $("#testmask").SendKey(keyCodes.LEFT);
  129. $("#testmask").SendKey(keyCodes.LEFT);
  130. $("#testmask").SendKey(keyCodes.LEFT);
  131. $("#testmask").SendKey(keyCodes.DELETE);
  132. $("#testmask").SendKey(keyCodes.DELETE);
  133. $("#testmask").SendKey(keyCodes.DELETE);
  134. equal($("#testmask").val(), "12,345", "Result " + $("#testmask").val());
  135. $("#testmask").remove();
  136. });
  137. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123 + replace .123 => .789", function () {
  138. var $fixture = $("#qunit-fixture");
  139. $fixture.append('<input type="text" id="testmask" />');
  140. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: "," });
  141. $("#testmask")[0].focus();
  142. $("#testmask").Type("12345.123");
  143. $("#testmask").SendKey(keyCodes.LEFT);
  144. $("#testmask").SendKey(keyCodes.LEFT);
  145. $("#testmask").SendKey(keyCodes.LEFT);
  146. $("#testmask").SendKey(keyCodes.DELETE);
  147. $("#testmask").SendKey(keyCodes.DELETE);
  148. $("#testmask").SendKey(keyCodes.DELETE);
  149. $("#testmask").Type(".789");
  150. equal($("#testmask").val(), "12,345.789", "Result " + $("#testmask").val());
  151. $("#testmask").remove();
  152. });
  153. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123 + replace .123 => .789", function () {
  154. var $fixture = $("#qunit-fixture");
  155. $fixture.append('<input type="text" id="testmask" />');
  156. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: "," });
  157. $("#testmask")[0].focus();
  158. $("#testmask").Type("12345.123");
  159. //$("#testmask").click();
  160. caret($("#testmask"), 6, 10);
  161. $("#testmask").Type(".789");
  162. equal($("#testmask").val(), "12,345.789", "Result " + $("#testmask").val());
  163. $("#testmask").remove();
  164. });
  165. test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\" }\") - input 12345.123 + remove .123", function () {
  166. var $fixture = $("#qunit-fixture");
  167. $fixture.append('<input type="text" id="testmask" />');
  168. $("#testmask").inputmask("decimal", { autoGroup: false, groupSeparator: "," });
  169. $("#testmask")[0].focus();
  170. $("#testmask").Type("12345.123");
  171. //$("#testmask").click();
  172. $("#testmask").SendKey(keyCodes.LEFT);
  173. $("#testmask").SendKey(keyCodes.LEFT);
  174. $("#testmask").SendKey(keyCodes.LEFT);
  175. $("#testmask").SendKey(keyCodes.DELETE);
  176. $("#testmask").SendKey(keyCodes.DELETE);
  177. $("#testmask").SendKey(keyCodes.DELETE);
  178. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  179. $("#testmask").remove();
  180. });
  181. test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\" }\") - input 12345.123 + replace .123 => .789", function () {
  182. var $fixture = $("#qunit-fixture");
  183. $fixture.append('<input type="text" id="testmask" />');
  184. $("#testmask").inputmask("decimal", { autoGroup: false, groupSeparator: "," });
  185. $("#testmask")[0].focus();
  186. $("#testmask").Type("12345.123");
  187. $("#testmask").SendKey(keyCodes.LEFT);
  188. $("#testmask").SendKey(keyCodes.LEFT);
  189. $("#testmask").SendKey(keyCodes.LEFT);
  190. $("#testmask").SendKey(keyCodes.LEFT);
  191. $("#testmask").SendKey(keyCodes.DELETE);
  192. $("#testmask").SendKey(keyCodes.DELETE);
  193. $("#testmask").SendKey(keyCodes.DELETE);
  194. $("#testmask").SendKey(keyCodes.DELETE);
  195. $("#testmask").Type(".789");
  196. equal($("#testmask").val(), "12345.789", "Result " + $("#testmask").val());
  197. $("#testmask").remove();
  198. });
  199. test("inputmask(\"decimal\") - maxlength 10", function () {
  200. var $fixture = $("#qunit-fixture");
  201. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  202. $("#testmask").inputmask("decimal");
  203. $("#testmask")[0].focus();
  204. $("#testmask").Type("123456789012345");
  205. equal($("#testmask").val(), "1234567890", "Result " + $("#testmask").val());
  206. $("#testmask").remove();
  207. });
  208. test("inputmask(\"decimal, { repeat: 15 }\") - maxlength 10", function () {
  209. var $fixture = $("#qunit-fixture");
  210. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  211. $("#testmask").inputmask("decimal", { repeat: 15 });
  212. $("#testmask")[0].focus();
  213. $("#testmask").Type("123456789012345");
  214. equal($("#testmask").val(), "1234567890", "Result " + $("#testmask").val());
  215. $("#testmask").remove();
  216. });
  217. test("inputmask(\"decimal, { repeat: 5 }\") - maxlength 10", function () {
  218. var $fixture = $("#qunit-fixture");
  219. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  220. $("#testmask").inputmask("decimal", { repeat: 5 });
  221. $("#testmask")[0].focus();
  222. $("#testmask").Type("123456789012345");
  223. equal($("#testmask").val(), "12345.6789", "Result " + $("#testmask").val());
  224. $("#testmask").remove();
  225. });
  226. test("inputmask(\"decimal\")", function () {
  227. var $fixture = $("#qunit-fixture");
  228. $fixture.append('<input type="text" id="testmask" />');
  229. $("#testmask").inputmask("decimal");
  230. $("#testmask")[0].focus();
  231. $("#testmask").Type("1234567890");
  232. caret($("#testmask"), 0, 10);
  233. $("#testmask").Type("12345");
  234. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  235. $("#testmask").remove();
  236. });
  237. test("inputmask(\"decimal\") - value=\"1234567890\"", function () {
  238. var $fixture = $("#qunit-fixture");
  239. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  240. $("#testmask").inputmask("decimal");
  241. $("#testmask")[0].focus();
  242. caret($("#testmask"), 0, 10);
  243. $("#testmask").Type("12345");
  244. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  245. $("#testmask").remove();
  246. });
  247. test("inputmask(\"decimal\")", function () {
  248. var $fixture = $("#qunit-fixture");
  249. $fixture.append('<input type="text" id="testmask" />');
  250. $("#testmask").inputmask("decimal");
  251. $("#testmask")[0].focus();
  252. $("#testmask").Type("1234567890");
  253. caret($("#testmask"), 3, 5);
  254. $("#testmask").SendKey("0");
  255. equal($("#testmask").val(), "123067890", "Result " + $("#testmask").val());
  256. $("#testmask").remove();
  257. });
  258. test("inputmask(\"decimal\") - value=\"1234567890\"", function () {
  259. var $fixture = $("#qunit-fixture");
  260. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  261. $("#testmask").inputmask("decimal");
  262. $("#testmask")[0].focus();
  263. caret($("#testmask"), 3, 5);
  264. $("#testmask").SendKey("0");
  265. equal($("#testmask").val(), "123067890", "Result " + $("#testmask").val());
  266. $("#testmask").remove();
  267. });
  268. test("inputmask(\"decimal\") - value=\"123.45\" Replace last integer", function () {
  269. var $fixture = $("#qunit-fixture");
  270. $fixture.append('<input type="text" id="testmask" />');
  271. $("#testmask").inputmask("decimal", { digits: 2 });
  272. $("#testmask")[0].focus();
  273. $("#testmask").Type("123.45");
  274. caret($("#testmask"), 2, 3);
  275. $("#testmask").SendKey("7");
  276. equal($("#testmask").val(), "127.45", "Result " + $("#testmask").val());
  277. $("#testmask").remove();
  278. });
  279. test("inputmask(\"decimal\", { digits: 2 }) - value=\"123\" - RomeroMsk", function () {
  280. var $fixture = $("#qunit-fixture");
  281. $fixture.append('<input type="text" id="testmask" />');
  282. $("#testmask").inputmask("decimal", { digits: 2 });
  283. $("#testmask")[0].focus();
  284. $("#testmask").Type("123");
  285. caret($("#testmask"), 0, 3);
  286. $("#testmask").SendKey(",,..");
  287. $("#testmask").SendKey(keyCodes.RIGHT);
  288. $("#testmask").SendKey(keyCodes.RIGHT); //needed in test
  289. $("#testmask").SendKey(keyCodes.RIGHT); //needed in test
  290. $("#testmask").Type("45");
  291. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  292. $("#testmask").remove();
  293. });
  294. test("inputmask - Multiple inputs masked, Integer mask doesn't allow typing - #402 - albatrocity", function () {
  295. var $fixture = $("#qunit-fixture");
  296. $fixture.append('<input type="text" id="testmask" />');
  297. $fixture.append('<input type="text" id="testmask2" />');
  298. $("#testmask").inputmask("integer", {
  299. autoGroup: true,
  300. groupSeparator: ",",
  301. groupSize: 3
  302. });
  303. $("#testmask2").inputmask("(999)-999-9999");
  304. $("#testmask")[0].focus();
  305. $("#testmask").Type("12345");
  306. equal($("#testmask").val(), "12,345", "Result " + $("#testmask").val());
  307. $("#testmask").remove();
  308. $("#testmask2").remove();
  309. });
  310. test("decimal alias with groupseparator delete - YoussefTaghlabi", function () {
  311. var $fixture = $("#qunit-fixture");
  312. $fixture.append('<input type="text" id="testmask" />');
  313. $("#testmask").inputmask("decimal", {
  314. radixPoint: ".",
  315. groupSeparator: ",",
  316. groupSize: 3,
  317. digits: 2,
  318. autoGroup: true,
  319. allowPlus: false,
  320. allowMinus: true
  321. });
  322. $("#testmask")[0].focus();
  323. $("#testmask").Type("1234567");
  324. caret($("#testmask"), 0);
  325. $("#testmask").SendKey(keyCodes.DELETE);
  326. equal($("#testmask").val(), "234,567", "Result " + $("#testmask").val());
  327. $("#testmask").remove();
  328. });
  329. test("decimal alias with groupseparator backspace - YoussefTaghlabi", function () {
  330. var $fixture = $("#qunit-fixture");
  331. $fixture.append('<input type="text" id="testmask" />');
  332. $("#testmask").inputmask("decimal", {
  333. radixPoint: ".",
  334. groupSeparator: ",",
  335. groupSize: 3,
  336. digits: 2,
  337. autoGroup: true,
  338. allowPlus: false,
  339. allowMinus: true
  340. });
  341. $("#testmask")[0].focus();
  342. $("#testmask").Type("1234567");
  343. caret($("#testmask"), 1);
  344. $("#testmask").SendKey(keyCodes.BACKSPACE);
  345. equal($("#testmask").val(), "234,567", "Result " + $("#testmask").val());
  346. $("#testmask").remove();
  347. });
  348. test("decimal alias with plus or minus & autogroup - YoussefTaghlabi", function () {
  349. var $fixture = $("#qunit-fixture");
  350. $fixture.append('<input type="text" id="testmask" />');
  351. $("#testmask").inputmask("decimal", {
  352. radixPoint: ".",
  353. groupSeparator: ",",
  354. groupSize: 3,
  355. digits: 2,
  356. autoGroup: true,
  357. allowPlus: true,
  358. allowMinus: true
  359. });
  360. $("#testmask")[0].focus();
  361. $("#testmask").Type("-123456");
  362. equal($("#testmask").val(), "-123,456", "Result " + $("#testmask").val());
  363. $("#testmask").remove();
  364. });
  365. test("decimal alias with plus or minus & autogroup - YoussefTaghlabi", function () {
  366. var $fixture = $("#qunit-fixture");
  367. $fixture.append('<input type="text" id="testmask" />');
  368. $("#testmask").inputmask("decimal", {
  369. radixPoint: ".",
  370. groupSeparator: ",",
  371. groupSize: 3,
  372. digits: 2,
  373. autoGroup: true,
  374. allowPlus: true,
  375. allowMinus: true
  376. });
  377. $("#testmask")[0].focus();
  378. $("#testmask").Type("123456");
  379. caret($("#testmask"), 0);
  380. $("#testmask").SendKey("-");
  381. equal($("#testmask").val(), "-123,456", "Result " + $("#testmask").val());
  382. $("#testmask").remove();
  383. });