tests_numericinput.js 13 KB

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