tests_numericinput.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. import { keys } from "../lib/keycode";
  2. export default function (qunit, Inputmask) {
  3. var $ = Inputmask.dependencyLib;
  4. qunit.module("Direction RTL");
  5. qunit.test(
  6. 'inputmask("999.999.999") - delete 2nd with backspace, continue the mask',
  7. function (assert) {
  8. var done = assert.async(),
  9. $fixture = $("#qunit-fixture");
  10. $fixture.append('<input type="text" id="testmask" dir="rtl" />');
  11. var testmask = document.getElementById("testmask");
  12. Inputmask("999.999.999").mask(testmask);
  13. testmask.focus();
  14. setTimeout(function () {
  15. $("#testmask").SendKey("1");
  16. $("#testmask").SendKey("2");
  17. $("#testmask").SendKey("3");
  18. $("#testmask").SendKey(keys.ArrowRight);
  19. $("#testmask").SendKey(keys.ArrowRight);
  20. $("#testmask").SendKey(keys.ArrowRight);
  21. $("#testmask").SendKey(keys.Backspace);
  22. $("#testmask").SendKey("4");
  23. $("#testmask").SendKey(keys.ArrowLeft);
  24. $("#testmask").SendKey("5");
  25. $("#testmask").SendKey("6");
  26. assert.equal(testmask.value, "___._65.341", "Result " + testmask.value);
  27. done();
  28. }, 0);
  29. }
  30. );
  31. qunit.test(
  32. 'inputmask("999.999.999") - delete 2nd with delete, continue the mask',
  33. function (assert) {
  34. var done = assert.async(),
  35. $fixture = $("#qunit-fixture");
  36. $fixture.append('<input type="text" id="testmask" dir="rtl" />');
  37. var testmask = document.getElementById("testmask");
  38. Inputmask("999.999.999").mask(testmask);
  39. testmask.focus();
  40. setTimeout(function () {
  41. $("#testmask").SendKey("1");
  42. $("#testmask").SendKey("2");
  43. $("#testmask").SendKey("3");
  44. $("#testmask").SendKey(keys.ArrowRight);
  45. $("#testmask").SendKey(keys.ArrowRight);
  46. $("#testmask").SendKey(keys.Delete);
  47. $("#testmask").SendKey("4");
  48. $("#testmask").SendKey(keys.ArrowLeft);
  49. $("#testmask").SendKey("5");
  50. $("#testmask").SendKey("6");
  51. assert.equal(testmask.value, "___._65.341", "Result " + testmask.value);
  52. done();
  53. }, 0);
  54. }
  55. );
  56. qunit.test('inputmask("999-aaa-999")', function (assert) {
  57. var done = assert.async(),
  58. $fixture = $("#qunit-fixture");
  59. $fixture.append('<input type="text" id="testmask" dir="rtl" />');
  60. var testmask = document.getElementById("testmask");
  61. Inputmask("999-aaa-999").mask(testmask);
  62. testmask.focus();
  63. setTimeout(function () {
  64. $("#testmask").Type("123abc12");
  65. assert.equal(testmask.value, "_21-cba-321", "Result " + testmask.value);
  66. done();
  67. }, 0);
  68. });
  69. qunit.test('inputmask("999-999-999") - replace selection', function (assert) {
  70. var done = assert.async(),
  71. $fixture = $("#qunit-fixture");
  72. $fixture.append('<input type="text" id="testmask" dir="rtl" />');
  73. var testmask = document.getElementById("testmask");
  74. Inputmask("999-999-999").mask(testmask);
  75. testmask.focus();
  76. setTimeout(function () {
  77. $("#testmask").Type("123456789");
  78. $.caret(testmask, 4, 7);
  79. $("#testmask").Type("5");
  80. assert.equal(testmask.value, "__9-875-321", "Result " + testmask.value);
  81. done();
  82. }, 0);
  83. });
  84. qunit.test(
  85. 'inputmask("999-999-999") - replace selection with backspace',
  86. 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(keys.Backspace);
  97. $("#testmask").Type("5");
  98. assert.equal(testmask.value, "__9-875-321", "Result " + testmask.value);
  99. done();
  100. }, 0);
  101. }
  102. );
  103. qunit.test(
  104. 'inputmask("999-999-999") - replace selection - with delete',
  105. function (assert) {
  106. var done = assert.async(),
  107. $fixture = $("#qunit-fixture");
  108. $fixture.append('<input type="text" id="testmask" dir="rtl" />');
  109. var testmask = document.getElementById("testmask");
  110. Inputmask("999-999-999").mask(testmask);
  111. testmask.focus();
  112. setTimeout(function () {
  113. $("#testmask").Type("123456789");
  114. $.caret(testmask, 4, 7);
  115. $("#testmask").SendKey(keys.Delete);
  116. $("#testmask").Type("5");
  117. assert.equal(testmask.value, "__9-875-321", "Result " + testmask.value);
  118. done();
  119. }, 0);
  120. }
  121. );
  122. qunit.module("Numeric Input");
  123. qunit.test(
  124. 'inputmask({ mask: "9", numericInput: true, repeat: 10, greedy: true }); - 1234567890',
  125. function (assert) {
  126. var done = assert.async(),
  127. $fixture = $("#qunit-fixture");
  128. $fixture.append('<input type="text" id="testmask" />');
  129. var testmask = document.getElementById("testmask");
  130. Inputmask({
  131. mask: "9",
  132. numericInput: true,
  133. repeat: 10,
  134. greedy: true
  135. }).mask(testmask);
  136. testmask.focus();
  137. setTimeout(function () {
  138. $("#testmask").Type("1234567890");
  139. assert.equal(testmask.value, "1234567890", "Result " + testmask.value);
  140. done();
  141. }, 0);
  142. }
  143. );
  144. qunit.test(
  145. 'inputmask({ mask: "9", numericInput: true, repeat: 10, greedy: true }); - replace selection',
  146. function (assert) {
  147. var done = assert.async(),
  148. $fixture = $("#qunit-fixture");
  149. $fixture.append('<input type="text" id="testmask" />');
  150. var testmask = document.getElementById("testmask");
  151. Inputmask({
  152. mask: "9",
  153. numericInput: true,
  154. repeat: 10,
  155. greedy: true
  156. }).mask(testmask);
  157. testmask.focus();
  158. setTimeout(function () {
  159. $("#testmask").Type("1234567890");
  160. $.caret(testmask, 3, 6);
  161. $("#testmask").Type("5");
  162. assert.equal(testmask.value, "__12357890", "Result " + testmask.value);
  163. done();
  164. }, 0);
  165. }
  166. );
  167. qunit.test(
  168. 'inputmask({ mask: "99-99-99", numericInput: true }); - 1234567890',
  169. function (assert) {
  170. var done = assert.async(),
  171. $fixture = $("#qunit-fixture");
  172. $fixture.append('<input type="text" id="testmask" />');
  173. var testmask = document.getElementById("testmask");
  174. Inputmask({
  175. mask: "99-99-99",
  176. numericInput: true
  177. }).mask(testmask);
  178. testmask.focus();
  179. setTimeout(function () {
  180. $("#testmask").Type("1234567890");
  181. assert.equal(testmask.value, "12-34-56", "Result " + testmask.value);
  182. done();
  183. }, 0);
  184. }
  185. );
  186. qunit.test(
  187. 'inputmask({ mask: "€ 999.999.999,99", numericInput: true }); - 123',
  188. 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. assert.equal(
  200. testmask.value,
  201. "€ ___.___.__1,23",
  202. "Result " + testmask.value
  203. );
  204. done();
  205. }, 0);
  206. }
  207. );
  208. qunit.test(
  209. 'inputmask({ mask: "€ 999.999.999,99", numericInput: true }); - 123 position before 456',
  210. function (assert) {
  211. var done = assert.async(),
  212. $fixture = $("#qunit-fixture");
  213. $fixture.append('<input type="text" id="testmask" />');
  214. var testmask = document.getElementById("testmask");
  215. Inputmask("€ 999.999.999,99", {
  216. numericInput: true
  217. }).mask(testmask);
  218. testmask.focus();
  219. setTimeout(function () {
  220. $("#testmask").Type("123");
  221. $.caret(testmask, 12);
  222. $("#testmask").Type("456");
  223. assert.equal(
  224. testmask.value,
  225. "€ ___.__4.561,23",
  226. "Result " + testmask.value
  227. );
  228. done();
  229. }, 0);
  230. }
  231. );
  232. qunit.test(
  233. 'inputmask({ mask: "€ 999.999.999,99", { numericInput: true, radixPoint: "," }); - 123',
  234. function (assert) {
  235. var done = assert.async(),
  236. $fixture = $("#qunit-fixture");
  237. $fixture.append('<input type="text" id="testmask" />');
  238. var testmask = document.getElementById("testmask");
  239. Inputmask("€ 999.999.999,99", {
  240. numericInput: true,
  241. radixPoint: ","
  242. }).mask(testmask);
  243. testmask.focus();
  244. $("#testmask").trigger("click");
  245. setTimeout(function () {
  246. $("#testmask").Type("123");
  247. assert.equal(
  248. testmask.value,
  249. "€ ___.___.__1,23",
  250. "Result " + testmask.value
  251. );
  252. done();
  253. }, 0);
  254. }
  255. );
  256. qunit.test(
  257. 'inputmask({ mask: "€ 999.999.999,99", { numericInput: true, radixPoint: "," }); - 123,45',
  258. function (assert) {
  259. var done = assert.async(),
  260. $fixture = $("#qunit-fixture");
  261. $fixture.append('<input type="text" id="testmask" />');
  262. var testmask = document.getElementById("testmask");
  263. Inputmask("€ 999.999.999,99", {
  264. numericInput: true,
  265. radixPoint: ","
  266. }).mask(testmask);
  267. testmask.focus();
  268. $("#testmask").trigger("click");
  269. setTimeout(function () {
  270. $("#testmask").Type("123,45");
  271. assert.equal(
  272. testmask.value,
  273. "€ ___.___.123,45",
  274. "Result " + testmask.value
  275. );
  276. done();
  277. }, 0);
  278. }
  279. );
  280. qunit.test(
  281. 'inputmask({ mask: "9999 t", { numericInput: true }); - 123 - Joe Rosa',
  282. function (assert) {
  283. var done = assert.async(),
  284. $fixture = $("#qunit-fixture");
  285. $fixture.append('<input type="text" id="testmask" />');
  286. var testmask = document.getElementById("testmask");
  287. Inputmask("9999 t", {
  288. numericInput: true
  289. }).mask(testmask);
  290. testmask.focus();
  291. $("#testmask").trigger("click");
  292. setTimeout(function () {
  293. $("#testmask").Type("123");
  294. assert.equal(testmask.value, "_123 t", "Result " + testmask.value);
  295. done();
  296. }, 0);
  297. }
  298. );
  299. qunit.test(
  300. 'inputmask({ mask: "9999 t", { numericInput: true, autoUnmask: true }); - 70 - Joe Rosa',
  301. function (assert) {
  302. var done = assert.async(),
  303. $fixture = $("#qunit-fixture");
  304. $fixture.append('<input type="text" id="testmask" />');
  305. var testmask = document.getElementById("testmask");
  306. Inputmask("9999 t", {
  307. numericInput: true,
  308. autoUnmask: true
  309. }).mask(testmask);
  310. testmask.focus();
  311. $("#testmask").trigger("click");
  312. setTimeout(function () {
  313. $("#testmask").Type("70");
  314. assert.equal(testmask.value, "70", "Result " + testmask.value);
  315. done();
  316. }, 0);
  317. }
  318. );
  319. qunit.test(
  320. "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\"",
  321. function (assert) {
  322. var done = assert.async(),
  323. $fixture = $("#qunit-fixture");
  324. $fixture.append(
  325. "<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\"/>"
  326. );
  327. var testmask = document.getElementById("testmask");
  328. Inputmask().mask(testmask);
  329. setTimeout(function () {
  330. assert.equal(testmask.value, "$100,000.00", "Result " + testmask.value);
  331. done();
  332. }, 0);
  333. }
  334. );
  335. qunit.test(
  336. "cuurency - numericInput: true - 123456 backspace x4",
  337. function (assert) {
  338. var done = assert.async(),
  339. $fixture = $("#qunit-fixture");
  340. $fixture.append('<input type="text" id="testmask" />');
  341. var testmask = document.getElementById("testmask");
  342. Inputmask("currency", {
  343. numericInput: true,
  344. prefix: "$ "
  345. }).mask(testmask);
  346. testmask.focus();
  347. setTimeout(function () {
  348. $("#testmask").Type("123456");
  349. $("#testmask").SendKey(keys.Backspace);
  350. $("#testmask").SendKey(keys.Backspace);
  351. $("#testmask").SendKey(keys.Backspace);
  352. $("#testmask").SendKey(keys.Backspace);
  353. assert.equal(testmask.value, "$ 0.12", "Result " + testmask.value);
  354. done();
  355. }, 0);
  356. }
  357. );
  358. qunit.test(
  359. "decimal - numericInput: true - initial value 20,00 - Inkeliz",
  360. function (assert) {
  361. var done = assert.async(),
  362. $fixture = $("#qunit-fixture");
  363. $fixture.append('<input type="text" id="testmask" value="20,00" />');
  364. var testmask = document.getElementById("testmask");
  365. Inputmask("decimal", {
  366. radixPoint: ",",
  367. rightAlign: false,
  368. showMaskOnHover: false,
  369. numericInput: true,
  370. rightAlignNumerics: false,
  371. greedy: false
  372. }).mask(testmask);
  373. setTimeout(function () {
  374. assert.equal(testmask.value, "20,00", "Result " + testmask.value);
  375. done();
  376. }, 0);
  377. }
  378. );
  379. qunit.test(
  380. "currency - numericInput: true - initial value 4545.56 - sadhuria",
  381. function (assert) {
  382. var $fixture = $("#qunit-fixture");
  383. $fixture.append('<input type="text" id="testmask" value="4545.56" />');
  384. var testmask = document.getElementById("testmask");
  385. Inputmask("currency", {
  386. groupSeparator: ",",
  387. placeholder: "0.00",
  388. numericInput: true,
  389. prefix: "$ "
  390. }).mask(testmask);
  391. assert.equal(testmask.value, "$ 4,545.56", "Result " + testmask.value);
  392. }
  393. );
  394. qunit.test("(,999){+|1}.99 - Baiquan", function (assert) {
  395. var done = assert.async(),
  396. $fixture = $("#qunit-fixture");
  397. $fixture.append('<input type="text" id="testmask" />');
  398. var testmask = document.getElementById("testmask");
  399. Inputmask("(,999){+|1}.99", {
  400. numericInput: true,
  401. placeholder: "0"
  402. }).mask(testmask);
  403. testmask.focus();
  404. $("#testmask").trigger("click");
  405. setTimeout(function () {
  406. $("#testmask").Type("123456");
  407. assert.equal(testmask.value, "1,234.56", "Result " + testmask.value);
  408. done();
  409. }, 0);
  410. });
  411. }