tests_multi.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480
  1. import {keys} from "../lib/keycode";
  2. export default function (qunit, Inputmask) {
  3. var $ = Inputmask.dependencyLib;
  4. qunit.module("multi masks");
  5. qunit.test("inputmask({ mask: [\"99-99\", \"999-99\"]}) - input 12345", function (assert) {
  6. var done = assert.async(),
  7. $fixture = $("#qunit-fixture");
  8. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  9. var testmask = document.getElementById("testmask");
  10. Inputmask({
  11. mask: ["99-99", "999-99"]
  12. }).mask(testmask);
  13. testmask.focus();
  14. $("#testmask").Type("12345");
  15. setTimeout(function () {
  16. assert.equal(testmask.value, "123-45", "Result " + testmask.value);
  17. done();
  18. }, 0);
  19. });
  20. qunit.test("inputmask({ mask: [\"999.999.999-99\", \"99.999.999/9999-99\"]}) - input 12312312312", function (assert) {
  21. var done = assert.async(),
  22. $fixture = $("#qunit-fixture");
  23. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  24. var testmask = document.getElementById("testmask");
  25. Inputmask({
  26. mask: ["999.999.999-99", "99.999.999/9999-99"]
  27. }).mask(testmask);
  28. testmask.focus();
  29. $("#testmask").Type("12312312312");
  30. setTimeout(function () {
  31. assert.equal(testmask.value, "123.123.123-12", "Result " + testmask.value);
  32. done();
  33. }, 0);
  34. });
  35. qunit.test("inputmask({ mask: [\"999.999.999-99\", \"99.999.999/9999-99\"]}) - input 12.123123123412", function (assert) {
  36. var done = assert.async(),
  37. $fixture = $("#qunit-fixture");
  38. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  39. var testmask = document.getElementById("testmask");
  40. Inputmask({
  41. mask: ["999.999.999-99", "99.999.999/9999-99"]
  42. }).mask(testmask);
  43. testmask.focus();
  44. $("#testmask").Type("12.123123123412");
  45. setTimeout(function () {
  46. assert.equal(testmask.value, "12.123.123/1234-12", "Result " + testmask.value);
  47. done();
  48. }, 0);
  49. });
  50. qunit.test("inputmask({ mask: [\"99999\", \"99999-9999\"]]}) - input 12345 greedy + blur", function (assert) {
  51. var done = assert.async(),
  52. $fixture = $("#qunit-fixture");
  53. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  54. var testmask = document.getElementById("testmask");
  55. Inputmask({
  56. mask: ["99999", "99999-9999"]
  57. }).mask(testmask);
  58. testmask.focus();
  59. $("#testmask").Type("12345");
  60. testmask.blur();
  61. setTimeout(function () {
  62. assert.equal(testmask.inputmask._valueGet(), "12345", "Result " + testmask.inputmask._valueGet());
  63. done();
  64. }, 0);
  65. });
  66. qunit.test("inputmask({ mask: [\"99999\", \"99999-9999\"]]}) - input 12345 not greedy", function (assert) {
  67. var done = assert.async(),
  68. $fixture = $("#qunit-fixture");
  69. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  70. var testmask = document.getElementById("testmask");
  71. Inputmask({
  72. mask: ["99999", "99999-9999"],
  73. greedy: false,
  74. keepStatic: true
  75. }).mask(testmask);
  76. testmask.focus();
  77. $("#testmask").Type("12345");
  78. setTimeout(function () {
  79. assert.equal(testmask.value, "12345", "Result " + testmask.value);
  80. done();
  81. }, 0);
  82. });
  83. qunit.test("inputmask({ mask: [\"99999\", \"99999-9999\"]]}) - input 12345-1234", function (assert) {
  84. var done = assert.async(),
  85. $fixture = $("#qunit-fixture");
  86. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  87. var testmask = document.getElementById("testmask");
  88. Inputmask({
  89. mask: ["99999", "99999-9999"]
  90. }).mask(testmask);
  91. testmask.focus();
  92. $("#testmask").Type("12345-1234");
  93. setTimeout(function () {
  94. assert.equal(testmask.value, "12345-1234", "Result " + testmask.value);
  95. done();
  96. }, 0);
  97. });
  98. qunit.test("inputmask({ mask: [\"99999\", \"99999-9999\"]]}) - input 123451234", function (assert) {
  99. var done = assert.async(),
  100. $fixture = $("#qunit-fixture");
  101. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  102. var testmask = document.getElementById("testmask");
  103. Inputmask({
  104. mask: ["99999", "99999-9999"]
  105. }).mask(testmask);
  106. testmask.focus();
  107. $("#testmask").Type("123451234");
  108. setTimeout(function () {
  109. assert.equal(testmask.value, "12345-1234", "Result " + testmask.value);
  110. done();
  111. }, 0);
  112. });
  113. qunit.test("inputmask({ mask: [\"99999\", \"99999-9999\"]]}) - input 1234512", function (assert) {
  114. var done = assert.async(),
  115. $fixture = $("#qunit-fixture");
  116. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  117. var testmask = document.getElementById("testmask");
  118. Inputmask({
  119. mask: ["99999", "99999-9999"]
  120. }).mask(testmask);
  121. testmask.focus();
  122. $("#testmask").Type("1234512");
  123. setTimeout(function () {
  124. assert.equal(testmask.value, "12345-12__", "Result " + testmask.value);
  125. done();
  126. }, 0);
  127. });
  128. qunit.test("inputmask({ mask: [\"99999\", \"99999-9999\", \"999999-9999\"]]}) - input 1234561234", 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: ["99999", "99999-9999", "999999-9999"]
  135. }).mask(testmask);
  136. testmask.focus();
  137. $("#testmask").Type("1234561234");
  138. setTimeout(function () {
  139. assert.equal(testmask.value, "123456-1234", "Result " + testmask.value);
  140. done();
  141. }, 0);
  142. });
  143. qunit.test("inputmask({ mask: [\"99999\", \"99999-9999\", \"999999-9999\"]]}) - input 12345-6", function (assert) {
  144. var done = assert.async(),
  145. $fixture = $("#qunit-fixture");
  146. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  147. var testmask = document.getElementById("testmask");
  148. Inputmask({
  149. mask: ["99999", "99999-9999", "999999-9999"]
  150. }).mask(testmask);
  151. testmask.focus();
  152. $("#testmask").Type("12345-6");
  153. setTimeout(function () {
  154. assert.equal(testmask.value, "12345-6___", "Result " + testmask.value);
  155. done();
  156. }, 0);
  157. });
  158. qunit.test("inputmask({ mask: [\"99999\", \"99999-9999\", \"999999-9999\"] , keepStatic: true}) - input 123456", function (assert) {
  159. var done = assert.async(),
  160. $fixture = $("#qunit-fixture");
  161. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  162. var testmask = document.getElementById("testmask");
  163. Inputmask({
  164. mask: ["99999", "99999-9999", "999999-9999"],
  165. keepStatic: true
  166. }).mask(testmask);
  167. testmask.focus();
  168. $("#testmask").Type("123456");
  169. setTimeout(function () {
  170. assert.equal(testmask.value, "12345-6___", "Result " + testmask.value);
  171. done();
  172. }, 0);
  173. });
  174. qunit.test("inputmask({ mask: [\"99999\", \"99999-9999\", \"999999-9999\"], keepStatic: false}) - input 123456", function (assert) {
  175. var done = assert.async(),
  176. $fixture = $("#qunit-fixture");
  177. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  178. var testmask = document.getElementById("testmask");
  179. Inputmask({
  180. mask: ["99999", "99999-9999", "999999-9999"],
  181. keepStatic: false
  182. }).mask(testmask);
  183. testmask.focus();
  184. $("#testmask").Type("123456");
  185. setTimeout(function () {
  186. assert.equal(testmask.value, "123456-____", "Result " + testmask.value);
  187. done();
  188. }, 0);
  189. });
  190. qunit.test("inputmask({ mask: [\"99999\", \"99999-9999\", \"999999-9999\"]]}) - input 123456 (rtl)", function (assert) {
  191. var done = assert.async(),
  192. $fixture = $("#qunit-fixture");
  193. $fixture.append("<input type=\"text\" id=\"testmask\" dir=\"rtl\" />");
  194. var testmask = document.getElementById("testmask");
  195. Inputmask({
  196. mask: ["99999", "99999-9999", "999999-9999"]
  197. }).mask(testmask);
  198. testmask.focus();
  199. setTimeout(function () { //needed to pass on ie
  200. $("#testmask").Type("123456");
  201. setTimeout(function () {
  202. assert.equal(testmask.value, "___65-4321", "Result " + testmask.value);
  203. done();
  204. }, 0);
  205. }, 0);
  206. });
  207. qunit.test("inputmask({ mask: ['9 AAA-AAA', 'A 999-999'] }) ", function (assert) {
  208. var done = assert.async(),
  209. $fixture = $("#qunit-fixture");
  210. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  211. var testmask = document.getElementById("testmask");
  212. Inputmask({
  213. mask: ["9 AAA-AAA", "A 999-999"]
  214. }).mask(testmask);
  215. $("#testmask").Type("1abc");
  216. setTimeout(function () {
  217. assert.equal(testmask.value, "1 ABC-___", "Result " + testmask.value);
  218. done();
  219. }, 0);
  220. });
  221. qunit.test("inputmask({ mask: ['9 AAA-AAA', 'A 999-999'] }) ", function (assert) {
  222. var done = assert.async(),
  223. $fixture = $("#qunit-fixture");
  224. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  225. var testmask = document.getElementById("testmask");
  226. Inputmask({
  227. mask: ["9 AAA-AAA", "A 999-999"]
  228. }).mask(testmask);
  229. $("#testmask").Type("a123");
  230. setTimeout(function () {
  231. assert.equal(testmask.value, "A 123-___", "Result " + testmask.value);
  232. done();
  233. }, 0);
  234. });
  235. qunit.test("inputmask({ mask: ['99.9', 'X'}) - annames", function (assert) {
  236. var $fixture = $("#qunit-fixture");
  237. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  238. var testmask = document.getElementById("testmask");
  239. Inputmask({
  240. mask: ["99.9", "X", "abc"],
  241. definitions: {
  242. "X": {
  243. validator: "[xX]",
  244. cardinality: 1,
  245. casing: "upper"
  246. }
  247. }
  248. }).mask(testmask);
  249. $("#testmask").Type("x");
  250. assert.equal(testmask.value, "X", "Result " + testmask.value);
  251. });
  252. qunit.test("inputmask({ mask: [{ \"mask\": \"###-##-####\" }]) - lynxlive", function (assert) {
  253. var $fixture = $("#qunit-fixture");
  254. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  255. var testmask = document.getElementById("testmask");
  256. var ssns = [{
  257. "mask": "###-##-####"
  258. }];
  259. Inputmask({
  260. mask: ssns,
  261. greedy: false,
  262. definitions: {
  263. "#": {
  264. validator: "[0-9]",
  265. cardinality: 1
  266. }
  267. }
  268. }).mask(testmask);
  269. $("#testmask").Type("123121234");
  270. assert.equal(testmask.value, "123-12-1234", "Result " + testmask.value);
  271. });
  272. qunit.test("'[9-]AAA-999', '999999' - type 1A - dekdegiv", function (assert) {
  273. var $fixture = $("#qunit-fixture");
  274. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  275. var testmask = document.getElementById("testmask");
  276. Inputmask({
  277. "mask": ["[9-]AAA-999", "999999"],
  278. keepStatic: false
  279. }).mask(testmask);
  280. $("#testmask").Type("1a");
  281. assert.equal(testmask.value, "1-A__-___", "Result " + testmask.value);
  282. });
  283. qunit.test("(99 99 999999)|(*{+}) - 12abc - dekdegiv", function (assert) {
  284. var $fixture = $("#qunit-fixture");
  285. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  286. var testmask = document.getElementById("testmask");
  287. Inputmask("(99 99 999999)|(*{+})").mask(testmask);
  288. $("#testmask").Type("12abc");
  289. assert.equal(testmask.value, "12abc", "Result " + testmask.value);
  290. });
  291. qunit.test("(99 99 999999)|(*{+}) - 12 34 delete ' 34' + 2abc", function (assert) {
  292. var $fixture = $("#qunit-fixture");
  293. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  294. var testmask = document.getElementById("testmask");
  295. Inputmask("(99 99 999999)|(*{+})").mask(testmask);
  296. $("#testmask").Type("12 34");
  297. $("#testmask").SendKey(keys.Backspace);
  298. $("#testmask").SendKey(keys.Backspace);
  299. $("#testmask").SendKey(keys.Backspace);
  300. $("#testmask").Type("2abc");
  301. assert.equal(testmask.value, "122abc", "Result " + testmask.value);
  302. });
  303. qunit.test("(99 99 999999)|(i{+}) - 12 3abc - dekdegiv", function (assert) {
  304. var $fixture = $("#qunit-fixture");
  305. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  306. var testmask = document.getElementById("testmask");
  307. Inputmask("(99 99 999999)|(*{+})", {
  308. definitions: {
  309. "*": {
  310. validator: ".",
  311. cardinality: 1,
  312. definitionSymbol: "*"
  313. }
  314. },
  315. staticDefinitionSymbol: "*"
  316. }).mask(testmask);
  317. $("#testmask").Type("12 3abc");
  318. assert.equal(testmask.value, "12 3abc", "Result " + testmask.value);
  319. });
  320. qunit.test("[\"(99) 9999-9999\",\"(99) 99999-9999\"] - 12123451234 - click front - asyncerror", function (assert) {
  321. var $fixture = $("#qunit-fixture");
  322. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  323. var testmask = document.getElementById("testmask");
  324. Inputmask(["(99) 9999-9999", "(99) 99999-9999"]).mask(testmask);
  325. $("#testmask").Type("12123451234");
  326. $.caret(testmask, 0);
  327. testmask.focus();
  328. $("#testmask").trigger("click");
  329. assert.equal(testmask.value, "(12) 12345-1234", "Result " + testmask.value);
  330. });
  331. qunit.test("[\"+7(999)999-99-99\",\"+380(99)999-99-99\",\"+375(99)999-99-99\"] - andychups", function (assert) {
  332. var done = assert.async(),
  333. $fixture = $("#qunit-fixture");
  334. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  335. var testmask = document.getElementById("testmask");
  336. Inputmask(["+7(999)999-99-99", "+380(99)999-99-99", "+375(99)999-99-99"], {
  337. keepStatic: false
  338. }).mask(testmask);
  339. $("#testmask").Type("3");
  340. setTimeout(function () {
  341. assert.equal(testmask.inputmask._valueGet(), "+3__(__)___-__-__", "Result " + testmask.inputmask._valueGet());
  342. done();
  343. }, 0);
  344. });
  345. qunit.test("[\"+7(999)999-99-99\",\"+380(99)999-99-99\",\"+375(99)999-99-99\"] - andychups", function (assert) {
  346. var done = assert.async(),
  347. $fixture = $("#qunit-fixture");
  348. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  349. var testmask = document.getElementById("testmask");
  350. Inputmask(["+7(999)999-99-99", "+380(99)999-99-99", "+375(99)999-99-99"], {
  351. keepStatic: false
  352. }).mask(testmask);
  353. testmask.focus();
  354. setTimeout(function () {
  355. $("#testmask").trigger("click");
  356. assert.equal(testmask.inputmask._valueGet(), "+_(___)___-__-__", "Result " + testmask.inputmask._valueGet());
  357. done();
  358. }, 0);
  359. });
  360. qunit.test("(9{4} 9{4} 9{4} 9{4})|(9{4} 9{6} 9[5])|(9{9} 9{9}) - 1234123412341234 - necrosisoff ", function (assert) {
  361. var $fixture = $("#qunit-fixture");
  362. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  363. var testmask = document.getElementById("testmask");
  364. Inputmask("(9{4} 9{4} 9{4} 9{4})|(9{4} 9{6} 9[5])|(9{9} 9{9})", {
  365. "keepStatic": true
  366. }
  367. ).mask(testmask);
  368. testmask.focus();
  369. $("#testmask").Type("1234123412341234");
  370. assert.equal(testmask.inputmask._valueGet(), "1234 1234 1234 1234", "Result " + testmask.inputmask._valueGet());
  371. });
  372. qunit.test("(9{4} 9{4} 9{4} 9{4})|(9{4} 9{6} 9[5])|(9{9} 9{9}) - 12341234123412341 - necrosisoff ", function (assert) {
  373. var $fixture = $("#qunit-fixture");
  374. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  375. var testmask = document.getElementById("testmask");
  376. Inputmask("(9{4} 9{4} 9{4} 9{4})|(9{4} 9{6} 9[5])|(9{9} 9{9})", {
  377. "keepStatic": true
  378. }
  379. ).mask(testmask);
  380. testmask.focus();
  381. $("#testmask").Type("12341234123412341");
  382. assert.equal(testmask.inputmask._valueGet(), "123412341 23412341_", "Result " + testmask.inputmask._valueGet());
  383. });
  384. qunit.test("mask: option auto-chooses an option rather than denying input - type 3 - #2225", function (assert) {
  385. var $fixture = $("#qunit-fixture");
  386. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  387. var testmask = document.getElementById("testmask");
  388. Inputmask({
  389. mask: [
  390. "4999 9999 9999 9999",
  391. "5999 9999 9999 9999",
  392. "2999 9999 9999 9999",
  393. "6999 9999 9999 9999 [999]",
  394. "3999 999999 99999"],
  395. greedy: false,
  396. keepStatic: false}).mask(testmask);
  397. testmask.focus();
  398. $("#testmask").Type("3");
  399. assert.equal(testmask.inputmask._valueGet(), "3___ ______ _____", "Result " + testmask.inputmask._valueGet());
  400. });
  401. qunit.test("mask: option auto-chooses an option rather than denying input - type 1 - #2225", function (assert) {
  402. var $fixture = $("#qunit-fixture");
  403. $fixture.append("<input type=\"text\" id=\"testmask\" />");
  404. var testmask = document.getElementById("testmask");
  405. Inputmask({
  406. mask: [
  407. "4999 9999 9999 9999",
  408. "5999 9999 9999 9999",
  409. "2999 9999 9999 9999",
  410. "6999 9999 9999 9999 [999]",
  411. "3999 999999 99999"],
  412. greedy: false,
  413. keepStatic: false}).mask(testmask);
  414. testmask.focus();
  415. $("#testmask").Type("1");
  416. assert.equal(testmask.inputmask._valueGet(), "", "Result " + testmask.inputmask._valueGet());
  417. });
  418. };