tests_numericinput.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. define([
  2. "qunit",
  3. "inputmask.dependencyLib",
  4. "inputmask"
  5. ], function(qunit, $, Inputmask) {
  6. module("Direction RTL");
  7. asyncTest("inputmask(\"999.999.999\") - delete 2nd with backspace, continue the mask", function() {
  8. var $fixture = $("#qunit-fixture");
  9. $fixture.append('<input type="text" id="testmask" dir="rtl" />');
  10. var testmask = document.getElementById("testmask");
  11. Inputmask("999.999.999").mask(testmask);
  12. testmask.focus();
  13. setTimeout(function() {
  14. $("#testmask").SendKey("1");
  15. $("#testmask").SendKey("2");
  16. $("#testmask").SendKey("3");
  17. $("#testmask").SendKey(Inputmask.keyCode.RIGHT);
  18. $("#testmask").SendKey(Inputmask.keyCode.RIGHT);
  19. $("#testmask").SendKey(Inputmask.keyCode.RIGHT);
  20. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  21. $("#testmask").SendKey("4");
  22. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  23. $("#testmask").SendKey("5");
  24. $("#testmask").SendKey("6");
  25. start();
  26. equal(testmask.value, "___._65.341", "Result " + testmask.value);
  27. $("#testmask").remove();
  28. }, 0);
  29. });
  30. asyncTest("inputmask(\"999.999.999\") - delete 2nd with delete, continue the mask", function() {
  31. var $fixture = $("#qunit-fixture");
  32. $fixture.append('<input type="text" id="testmask" dir="rtl" />');
  33. var testmask = document.getElementById("testmask");
  34. Inputmask("999.999.999").mask(testmask);
  35. testmask.focus();
  36. setTimeout(function() {
  37. $("#testmask").SendKey("1");
  38. $("#testmask").SendKey("2");
  39. $("#testmask").SendKey("3");
  40. $("#testmask").SendKey(Inputmask.keyCode.RIGHT);
  41. $("#testmask").SendKey(Inputmask.keyCode.RIGHT);
  42. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  43. $("#testmask").SendKey("4");
  44. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  45. $("#testmask").SendKey("5");
  46. $("#testmask").SendKey("6");
  47. start();
  48. equal(testmask.value, "___._65.341", "Result " + testmask.value);
  49. $("#testmask").remove();
  50. }, 0);
  51. });
  52. asyncTest("inputmask(\"999-aaa-999\")", function() {
  53. var $fixture = $("#qunit-fixture");
  54. $fixture.append('<input type="text" id="testmask" dir="rtl" />');
  55. var testmask = document.getElementById("testmask");
  56. Inputmask("999-aaa-999").mask(testmask);
  57. testmask.focus();
  58. setTimeout(function() {
  59. $("#testmask").Type("123abc12");
  60. start();
  61. equal(testmask.value, "_21-cba-321", "Result " + testmask.value);
  62. $("#testmask").remove();
  63. }, 0);
  64. });
  65. asyncTest("inputmask(\"999-999-999\") - replace selection", function() {
  66. var $fixture = $("#qunit-fixture");
  67. $fixture.append('<input type="text" id="testmask" dir="rtl" />');
  68. var testmask = document.getElementById("testmask");
  69. Inputmask("999-999-999").mask(testmask);
  70. testmask.focus();
  71. setTimeout(function() {
  72. $("#testmask").Type("123456789");
  73. $.caret(testmask, 4, 7);
  74. $("#testmask").Type("5");
  75. start();
  76. equal(testmask.value, "__9-875-321", "Result " + testmask.value);
  77. $("#testmask").remove();
  78. }, 0);
  79. });
  80. asyncTest("inputmask(\"999-999-999\") - replace selection with backspace", function() {
  81. var $fixture = $("#qunit-fixture");
  82. $fixture.append('<input type="text" id="testmask" dir="rtl" />');
  83. var testmask = document.getElementById("testmask");
  84. Inputmask("999-999-999").mask(testmask);
  85. testmask.focus();
  86. setTimeout(function() {
  87. $("#testmask").Type("123456789");
  88. $.caret(testmask, 4, 7);
  89. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  90. $("#testmask").Type("5");
  91. start();
  92. equal(testmask.value, "__9-875-321", "Result " + testmask.value);
  93. $("#testmask").remove();
  94. }, 0);
  95. });
  96. asyncTest("inputmask(\"999-999-999\") - replace selection - with delete", function() {
  97. var $fixture = $("#qunit-fixture");
  98. $fixture.append('<input type="text" id="testmask" dir="rtl" />');
  99. var testmask = document.getElementById("testmask");
  100. Inputmask("999-999-999").mask(testmask);
  101. testmask.focus();
  102. setTimeout(function() {
  103. $("#testmask").Type("123456789");
  104. $.caret(testmask, 4, 7);
  105. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  106. $("#testmask").Type("5");
  107. start();
  108. equal(testmask.value, "__9-875-321", "Result " + testmask.value);
  109. $("#testmask").remove();
  110. }, 0);
  111. });
  112. module("Numeric Input");
  113. asyncTest("inputmask({ mask: \"9\", numericInput: true, repeat: 10, greedy: true }); - 1234567890", function() {
  114. var $fixture = $("#qunit-fixture");
  115. $fixture.append('<input type="text" id="testmask" />');
  116. var testmask = document.getElementById("testmask");
  117. Inputmask({
  118. mask: "9",
  119. numericInput: true,
  120. repeat: 10,
  121. greedy: true
  122. }).mask(testmask);
  123. testmask.focus();
  124. setTimeout(function() {
  125. $("#testmask").Type("1234567890");
  126. start();
  127. equal(testmask.value, "1234567890", "Result " + testmask.value);
  128. $("#testmask").remove();
  129. }, 0);
  130. });
  131. asyncTest("inputmask({ mask: \"9\", numericInput: true, repeat: 10, greedy: true }); - replace selection", function() {
  132. var $fixture = $("#qunit-fixture");
  133. $fixture.append('<input type="text" id="testmask" />');
  134. var testmask = document.getElementById("testmask");
  135. Inputmask({
  136. mask: "9",
  137. numericInput: true,
  138. repeat: 10,
  139. greedy: true
  140. }).mask(testmask);
  141. testmask.focus();
  142. setTimeout(function() {
  143. $("#testmask").Type("1234567890");
  144. $.caret(testmask, 3, 6);
  145. $("#testmask").Type("5");
  146. start();
  147. equal(testmask.value, "__12357890", "Result " + testmask.value);
  148. $("#testmask").remove();
  149. }, 0);
  150. });
  151. asyncTest("inputmask({ mask: \"99-99-99\", numericInput: true }); - 1234567890", function() {
  152. var $fixture = $("#qunit-fixture");
  153. $fixture.append('<input type="text" id="testmask" />');
  154. var testmask = document.getElementById("testmask");
  155. Inputmask({
  156. mask: "99-99-99",
  157. numericInput: true
  158. }).mask(testmask);
  159. testmask.focus();
  160. setTimeout(function() {
  161. $("#testmask").Type("1234567890");
  162. start();
  163. equal(testmask.value, "12-34-56", "Result " + testmask.value);
  164. $("#testmask").remove();
  165. }, 0);
  166. });
  167. asyncTest("inputmask({ mask: \"€ 999.999.999,99\", numericInput: true }); - 123", function() {
  168. var $fixture = $("#qunit-fixture");
  169. $fixture.append('<input type="text" id="testmask" />');
  170. var testmask = document.getElementById("testmask");
  171. Inputmask('€ 999.999.999,99', {
  172. numericInput: true
  173. }).mask(testmask);
  174. testmask.focus();
  175. setTimeout(function() {
  176. $("#testmask").Type("123");
  177. start();
  178. equal(testmask.value, "€ ___.___.__1,23", "Result " + testmask.value);
  179. $("#testmask").remove();
  180. }, 0);
  181. });
  182. asyncTest("inputmask({ mask: \"€ 999.999.999,99\", numericInput: true }); - 123 position before 456", function() {
  183. var $fixture = $("#qunit-fixture");
  184. $fixture.append('<input type="text" id="testmask" />');
  185. var testmask = document.getElementById("testmask");
  186. Inputmask('€ 999.999.999,99', {
  187. numericInput: true
  188. }).mask(testmask);
  189. testmask.focus();
  190. setTimeout(function() {
  191. $("#testmask").Type("123");
  192. $.caret(testmask, 12);
  193. $("#testmask").Type("456");
  194. start();
  195. equal(testmask.value, "€ ___.__4.561,23", "Result " + testmask.value);
  196. $("#testmask").remove();
  197. }, 0);
  198. });
  199. asyncTest("inputmask({ mask: \"€ 999.999.999,99\", { numericInput: true, radixPoint: \",\" }); - 123", function() {
  200. var $fixture = $("#qunit-fixture");
  201. $fixture.append('<input type="text" id="testmask" />');
  202. var testmask = document.getElementById("testmask");
  203. Inputmask('€ 999.999.999,99', {
  204. numericInput: true,
  205. radixPoint: ","
  206. }).mask(testmask);
  207. testmask.focus();
  208. $("#testmask").trigger("click");;
  209. setTimeout(function() {
  210. $("#testmask").Type("123");
  211. equal(testmask.value, "€ ___.___.__1,23", "Result " + testmask.value);
  212. start();
  213. $("#testmask").remove();
  214. }, 0);
  215. });
  216. asyncTest("inputmask({ mask: \"€ 999.999.999,99\", { numericInput: true, radixPoint: \",\" }); - 123,45", function() {
  217. var $fixture = $("#qunit-fixture");
  218. $fixture.append('<input type="text" id="testmask" />');
  219. var testmask = document.getElementById("testmask");
  220. Inputmask('€ 999.999.999,99', {
  221. numericInput: true,
  222. radixPoint: ","
  223. }).mask(testmask);
  224. testmask.focus();
  225. $("#testmask").trigger("click");;
  226. setTimeout(function() {
  227. $("#testmask").Type("123,45");
  228. equal(testmask.value, "€ ___.___.123,45", "Result " + testmask.value);
  229. start();
  230. $("#testmask").remove();
  231. }, 0);
  232. });
  233. asyncTest("inputmask({ mask: \"9999 t\", { numericInput: true }); - 123 - Joe Rosa", function() {
  234. var $fixture = $("#qunit-fixture");
  235. $fixture.append('<input type="text" id="testmask" />');
  236. var testmask = document.getElementById("testmask");
  237. Inputmask('9999 t', {
  238. numericInput: true
  239. }).mask(testmask);
  240. testmask.focus();
  241. $("#testmask").trigger("click");;
  242. setTimeout(function() {
  243. $("#testmask").Type("123");
  244. start();
  245. equal(testmask.value, "_123 t", "Result " + testmask.value);
  246. $("#testmask").remove();
  247. }, 0);
  248. });
  249. asyncTest("inputmask({ mask: \"9999 t\", { numericInput: true, autoUnmask: true }); - 70 - Joe Rosa", function() {
  250. var $fixture = $("#qunit-fixture");
  251. $fixture.append('<input type="text" id="testmask" />');
  252. var testmask = document.getElementById("testmask");
  253. Inputmask('9999 t', {
  254. numericInput: true,
  255. autoUnmask: true
  256. }).mask(testmask);
  257. testmask.focus();
  258. $("#testmask").trigger("click");;
  259. setTimeout(function() {
  260. $("#testmask").Type("70");
  261. start();
  262. equal(testmask.value, "70", "Result " + testmask.value);
  263. $("#testmask").remove();
  264. }, 0);
  265. });
  266. asyncTest("inputmask({ mask: \"['$9.99', '$99.99', '$999.99', '$9,999.99', '$99,999.99', '$999,999.99', '$9,999,999.99', '$99,999,999.99', '$999,999,999.99'], 'placeholder': ' ', 'numericInput': true, 'rightAlignNumerics': false\" value=\"$100000.00\"", function() {
  267. var $fixture = $("#qunit-fixture");
  268. $fixture.append("<input type=\"text\" id=\"testmask\" data-inputmask=\"'mask': ['$9.99', '$99.99', '$999.99', '$9,999.99', '$99,999.99', '$999,999.99', '$9,999,999.99', '$99,999,999.99', '$999,999,999.99'], 'placeholder': ' ', 'numericInput': true, 'rightAlignNumerics': false\" value=\"$100000.00\"/>");
  269. var testmask = document.getElementById("testmask");
  270. Inputmask().mask(testmask);
  271. setTimeout(function() {
  272. equal(testmask.value, "$100,000.00", "Result " + testmask.value);
  273. start();
  274. $("#testmask").remove();
  275. }, 0);
  276. });
  277. asyncTest("cuurency - numericInput: true - 123456 backspace x4", function() {
  278. var $fixture = $("#qunit-fixture");
  279. $fixture.append('<input type="text" id="testmask" />');
  280. var testmask = document.getElementById("testmask");
  281. Inputmask("currency", {
  282. numericInput: true
  283. }).mask(testmask);
  284. testmask.focus();
  285. setTimeout(function() {
  286. $("#testmask").Type("123456");
  287. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  288. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  289. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  290. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  291. start();
  292. equal(testmask.value, "$ 0.12", "Result " + testmask.value);
  293. $("#testmask").remove();
  294. }, 0);
  295. });
  296. });