tests_numericinput.js 12 KB

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