tests_numericinput.js 15 KB

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