tests_numericinput.js 11 KB

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