tests_numericinput.js 12 KB

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