tests_keepStatic.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531
  1. import { keys } from "../lib/keycode";
  2. export default function (qunit, Inputmask) {
  3. var $ = Inputmask.dependencyLib;
  4. qunit.module("keepStatic mask switching");
  5. qunit.test(
  6. '{ mask: ["+55-99-9999-9999", "+55-99-99999-9999", ], keepStatic: true }',
  7. function (assert) {
  8. var $fixture = $("#qunit-fixture");
  9. $fixture.append('<input type="text" id="testmask" />');
  10. var testmask = document.getElementById("testmask");
  11. Inputmask({
  12. mask: ["+55-99-9999-9999", "+55-99-99999-9999"],
  13. keepStatic: true
  14. }).mask(testmask);
  15. testmask.focus();
  16. $("#testmask").Type("12123451234");
  17. assert.equal(
  18. document.getElementById("testmask").inputmask._valueGet(),
  19. "+55-12-12345-1234",
  20. "Result " + document.getElementById("testmask").inputmask._valueGet()
  21. );
  22. }
  23. );
  24. qunit.test(
  25. '{ mask: "+55-99-9999|(99)-9999", keepStatic: true } - type 12123451234',
  26. function (assert) {
  27. var $fixture = $("#qunit-fixture");
  28. $fixture.append('<input type="text" id="testmask" />');
  29. var testmask = document.getElementById("testmask");
  30. Inputmask({
  31. mask: "+55-99-9999|(99)-9999",
  32. keepStatic: true
  33. }).mask(testmask);
  34. testmask.focus();
  35. $("#testmask").Type("12123451234");
  36. assert.equal(
  37. document.getElementById("testmask").inputmask._valueGet(),
  38. "+55-12-12345-1234",
  39. "Result " + document.getElementById("testmask").inputmask._valueGet()
  40. );
  41. }
  42. );
  43. qunit.test(
  44. "{ mask: ['(99) 9999-9999', '(99) 99999-9999'] } - val('1212341234')",
  45. function (assert) {
  46. var $fixture = $("#qunit-fixture");
  47. $fixture.append('<input type="text" id="testmask" />');
  48. var testmask = document.getElementById("testmask");
  49. Inputmask({
  50. mask: ["(99) 9999-9999", "(99) 99999-9999"]
  51. }).mask(testmask);
  52. $("#testmask").val("1212341234");
  53. assert.equal(
  54. document.getElementById("testmask").inputmask._valueGet(),
  55. "(12) 1234-1234",
  56. "Result " + document.getElementById("testmask").inputmask._valueGet()
  57. );
  58. }
  59. );
  60. qunit.test(
  61. '{ mask: "+55-99-9999|(99)-9999", keepStatic: false } type 12123451234',
  62. function (assert) {
  63. var $fixture = $("#qunit-fixture");
  64. $fixture.append('<input type="text" id="testmask" />');
  65. var testmask = document.getElementById("testmask");
  66. Inputmask({
  67. mask: "+55-99-9999|(99)-9999",
  68. keepStatic: false
  69. }).mask(testmask);
  70. testmask.focus();
  71. $("#testmask").Type("12123451234");
  72. assert.equal(
  73. document.getElementById("testmask").inputmask._valueGet(),
  74. "+55-12-12345-1234",
  75. "Result " + document.getElementById("testmask").inputmask._valueGet()
  76. );
  77. }
  78. );
  79. qunit.test(
  80. '{ mask: ["+55-99-9999-9999", "+55-99-99999-9999", ], keepStatic: true } - type 12123451234 + backspace',
  81. function (assert) {
  82. var $fixture = $("#qunit-fixture");
  83. $fixture.append('<input type="text" id="testmask" />');
  84. var testmask = document.getElementById("testmask");
  85. Inputmask({
  86. mask: ["+55-99-9999-9999", "+55-99-99999-9999"],
  87. keepStatic: true
  88. }).mask(testmask);
  89. testmask.focus();
  90. $("#testmask").Type("12123451234");
  91. $("#testmask").SendKey(keys.Backspace);
  92. assert.equal(
  93. document.getElementById("testmask").inputmask._valueGet(),
  94. "+55-12-1234-5123",
  95. "Result " + document.getElementById("testmask").inputmask._valueGet()
  96. );
  97. }
  98. );
  99. qunit.test(
  100. '{ mask: ["99-9999-99","99-99999-99"] } - type 12123412 + add 1 upfront',
  101. function (assert) {
  102. var $fixture = $("#qunit-fixture");
  103. $fixture.append('<input type="text" id="testmask" />');
  104. var testmask = document.getElementById("testmask");
  105. Inputmask({
  106. mask: ["99-9999-99", "99-99999-99"]
  107. }).mask(testmask);
  108. $("#testmask").Type("12123412");
  109. $.caret(testmask, 0);
  110. $("#testmask").Type("1");
  111. assert.equal(
  112. document.getElementById("testmask").inputmask._valueGet(),
  113. "11-21234-12",
  114. "Result " + document.getElementById("testmask").inputmask._valueGet()
  115. );
  116. }
  117. );
  118. qunit.test(
  119. '{ mask: ["99-99999-9","99-999999-9"] } - type 121234561',
  120. function (assert) {
  121. var $fixture = $("#qunit-fixture");
  122. $fixture.append('<input type="text" id="testmask" />');
  123. var testmask = document.getElementById("testmask");
  124. Inputmask({
  125. mask: ["99-99999-9", "99-999999-9"]
  126. }).mask(testmask);
  127. $("#testmask").Type("121234561");
  128. assert.equal(
  129. document.getElementById("testmask").inputmask._valueGet(),
  130. "12-123456-1",
  131. "Result " + document.getElementById("testmask").inputmask._valueGet()
  132. );
  133. }
  134. );
  135. qunit.test(
  136. '{ "keepStatic": true, greedy: false, mask: "(99-9)|(99999)" } - type 12345',
  137. function (assert) {
  138. var $fixture = $("#qunit-fixture");
  139. $fixture.append('<input type="text" id="testmask" />');
  140. var testmask = document.getElementById("testmask");
  141. Inputmask({
  142. keepStatic: true,
  143. greedy: false,
  144. mask: "(99-9)|(99999)"
  145. }).mask(testmask);
  146. $("#testmask").Type("12345");
  147. assert.equal(
  148. document.getElementById("testmask").inputmask._valueGet(),
  149. "12345",
  150. "Result " + document.getElementById("testmask").inputmask._valueGet()
  151. );
  152. }
  153. );
  154. qunit.test("7|8 999 99 99 - hiddenman", function (assert) {
  155. var done = assert.async(),
  156. $fixture = $("#qunit-fixture");
  157. $fixture.append('<input type="text" id="testmask" />');
  158. var testmask = document.getElementById("testmask");
  159. Inputmask("7|8 999 99 99").mask(testmask);
  160. testmask.focus();
  161. setTimeout(function () {
  162. assert.equal(
  163. document.getElementById("testmask").inputmask._valueGet(),
  164. "_ ___ __ __",
  165. "Result " + document.getElementById("testmask").inputmask._valueGet()
  166. );
  167. done();
  168. }, 0);
  169. });
  170. qunit.test("7|8 999 99 99 type 7 - hiddenman", function (assert) {
  171. var $fixture = $("#qunit-fixture");
  172. $fixture.append('<input type="text" id="testmask" />');
  173. var testmask = document.getElementById("testmask");
  174. Inputmask("7|8 999 99 99").mask(testmask);
  175. $("#testmask").Type("7");
  176. assert.equal(
  177. document.getElementById("testmask").inputmask._valueGet(),
  178. "7 ___ __ __",
  179. "Result " + document.getElementById("testmask").inputmask._valueGet()
  180. );
  181. });
  182. qunit.test("7|8 999 99 99 type 8 - hiddenman", function (assert) {
  183. var $fixture = $("#qunit-fixture");
  184. $fixture.append('<input type="text" id="testmask" />');
  185. var testmask = document.getElementById("testmask");
  186. Inputmask("7|8 999 99 99").mask(testmask);
  187. $("#testmask").Type("8");
  188. assert.equal(
  189. document.getElementById("testmask").inputmask._valueGet(),
  190. "8 ___ __ __",
  191. "Result " + document.getElementById("testmask").inputmask._valueGet()
  192. );
  193. });
  194. qunit.test("(78)|(79) 999 99 99", function (assert) {
  195. var done = assert.async(),
  196. $fixture = $("#qunit-fixture");
  197. $fixture.append('<input type="text" id="testmask" />');
  198. var testmask = document.getElementById("testmask");
  199. Inputmask("(78)|(79) 999 99 99").mask(testmask);
  200. testmask.focus();
  201. setTimeout(function () {
  202. assert.equal(
  203. document.getElementById("testmask").inputmask._valueGet(),
  204. "7_ ___ __ __",
  205. "Result " + document.getElementById("testmask").inputmask._valueGet()
  206. );
  207. done();
  208. }, 0);
  209. });
  210. qunit.test("(78)|(79) 999 99 99 - type 5", function (assert) {
  211. var $fixture = $("#qunit-fixture");
  212. $fixture.append('<input type="text" id="testmask" />');
  213. var testmask = document.getElementById("testmask");
  214. Inputmask("(78)|(79) 999 99 99").mask(testmask);
  215. testmask.focus();
  216. $("#testmask").Type("5");
  217. assert.equal(
  218. document.getElementById("testmask").inputmask._valueGet(),
  219. "75 ___ __ __",
  220. "Result " + document.getElementById("testmask").inputmask._valueGet()
  221. );
  222. });
  223. qunit.test("(78)|(74) 999 99 99", function (assert) {
  224. var done = assert.async(),
  225. $fixture = $("#qunit-fixture");
  226. $fixture.append('<input type="text" id="testmask" />');
  227. var testmask = document.getElementById("testmask");
  228. Inputmask("(78)|(74) 999 99 99").mask(testmask);
  229. testmask.focus();
  230. setTimeout(function () {
  231. assert.equal(
  232. document.getElementById("testmask").inputmask._valueGet(),
  233. "7_ ___ __ __",
  234. "Result " + document.getElementById("testmask").inputmask._valueGet()
  235. );
  236. done();
  237. }, 0);
  238. });
  239. qunit.test("5-9|(9a)-5 - keepstatic: false", function (assert) {
  240. var done = assert.async(),
  241. $fixture = $("#qunit-fixture");
  242. $fixture.append('<input type="text" id="testmask" />');
  243. var testmask = document.getElementById("testmask");
  244. Inputmask({
  245. mask: "5-9|(9a)-5",
  246. keepStatic: false
  247. }).mask(testmask);
  248. testmask.focus();
  249. setTimeout(function () {
  250. assert.equal(
  251. document.getElementById("testmask").inputmask._valueGet(),
  252. "5-_-5",
  253. "Result " + document.getElementById("testmask").inputmask._valueGet()
  254. );
  255. done();
  256. }, 0);
  257. });
  258. qunit.test(
  259. "['(99) 9999-9999', '(99) 9-9999-9999'] - type 12123412345 - 3m0",
  260. function (assert) {
  261. var $fixture = $("#qunit-fixture");
  262. $fixture.append('<input type="text" id="testmask" />');
  263. var testmask = document.getElementById("testmask");
  264. Inputmask({
  265. mask: ["(99) 9999-9999", "(99) 9-9999-9999"],
  266. removeMaskOnSubmit: false,
  267. clearmaskonlostfocus: true
  268. }).mask(testmask);
  269. testmask.focus();
  270. $("#testmask").Type("12123412345");
  271. assert.equal(
  272. document.getElementById("testmask").inputmask._valueGet(),
  273. "(12) 1-2341-2345",
  274. "Result " + document.getElementById("testmask").inputmask._valueGet()
  275. );
  276. }
  277. );
  278. qunit.test(
  279. "['(99) 9999-9999', '(99) 9-9999-9999'] - type 12123412345 - backspace - 3m0",
  280. function (assert) {
  281. var $fixture = $("#qunit-fixture");
  282. $fixture.append('<input type="text" id="testmask" />');
  283. var testmask = document.getElementById("testmask");
  284. Inputmask({
  285. mask: ["(99) 9999-9999", "(99) 9-9999-9999"],
  286. removeMaskOnSubmit: false,
  287. clearmaskonlostfocus: true
  288. }).mask(testmask);
  289. testmask.focus();
  290. $("#testmask").Type("12123412345");
  291. $("#testmask").SendKey(keys.Backspace);
  292. assert.equal(
  293. document.getElementById("testmask").inputmask._valueGet(),
  294. "(12) 1234-1234",
  295. "Result " + document.getElementById("testmask").inputmask._valueGet()
  296. );
  297. }
  298. );
  299. qunit.test(
  300. "(99 99)|(*****) keepStatic false - type 12 abc",
  301. function (assert) {
  302. var $fixture = $("#qunit-fixture");
  303. $fixture.append('<input type="text" id="testmask" />');
  304. var testmask = document.getElementById("testmask");
  305. Inputmask("(99 99)|(*****)", {
  306. keepStatic: false
  307. }).mask(testmask);
  308. $("#testmask").Type("12 abc");
  309. assert.equal(
  310. document.getElementById("testmask").inputmask._valueGet(),
  311. "12 __",
  312. "Result " + document.getElementById("testmask").inputmask._valueGet()
  313. );
  314. }
  315. );
  316. qunit.test(
  317. "(99 99)|(*****) keepStatic false - type 12 123",
  318. function (assert) {
  319. var $fixture = $("#qunit-fixture");
  320. $fixture.append('<input type="text" id="testmask" />');
  321. var testmask = document.getElementById("testmask");
  322. Inputmask("(99 99)|(*****)", {
  323. keepStatic: false
  324. }).mask(testmask);
  325. $("#testmask").Type("12 123");
  326. assert.equal(
  327. document.getElementById("testmask").inputmask._valueGet(),
  328. "12 12",
  329. "Result " + document.getElementById("testmask").inputmask._valueGet()
  330. );
  331. }
  332. );
  333. qunit.test("(99 99)|(*****) keepStatic true - type 1212", function (assert) {
  334. var $fixture = $("#qunit-fixture");
  335. $fixture.append('<input type="text" id="testmask" />');
  336. var testmask = document.getElementById("testmask");
  337. Inputmask("(99 99)|(*****)", {
  338. keepStatic: true
  339. }).mask(testmask);
  340. $("#testmask").Type("1212");
  341. assert.equal(
  342. document.getElementById("testmask").inputmask._valueGet(),
  343. "12 12",
  344. "Result " + document.getElementById("testmask").inputmask._valueGet()
  345. );
  346. });
  347. qunit.test("(99 99)|(*****) keepStatic true - type 12123", function (assert) {
  348. var $fixture = $("#qunit-fixture");
  349. $fixture.append('<input type="text" id="testmask" />');
  350. var testmask = document.getElementById("testmask");
  351. Inputmask("(99 99)|(*****)", {
  352. keepStatic: true
  353. }).mask(testmask);
  354. $("#testmask").Type("12123");
  355. assert.equal(
  356. document.getElementById("testmask").inputmask._valueGet(),
  357. "12123",
  358. "Result " + document.getElementById("testmask").inputmask._valueGet()
  359. );
  360. });
  361. qunit.test("(99 99)|(*****) keepStatic true - type abcde", function (assert) {
  362. var $fixture = $("#qunit-fixture");
  363. $fixture.append('<input type="text" id="testmask" />');
  364. var testmask = document.getElementById("testmask");
  365. Inputmask("(99 99)|(*****)", {
  366. keepStatic: true
  367. }).mask(testmask);
  368. $("#testmask").Type("abcde");
  369. assert.equal(
  370. document.getElementById("testmask").inputmask._valueGet(),
  371. "abcde",
  372. "Result " + document.getElementById("testmask").inputmask._valueGet()
  373. );
  374. });
  375. qunit.test(
  376. '["9+9", "(99)+99+99"] keepStatic true - type 123 - ishytow',
  377. function (assert) {
  378. var $fixture = $("#qunit-fixture");
  379. $fixture.append('<input type="text" id="testmask" />');
  380. var testmask = document.getElementById("testmask");
  381. Inputmask(["9+9", "(99)+99+99"], {
  382. keepStatic: true
  383. }).mask(testmask);
  384. $("#testmask").Type("123");
  385. assert.equal(testmask.value, "(12)+3_+__", "Result " + testmask.value);
  386. }
  387. );
  388. qunit.test(
  389. '["9+9", "99+99", "(99)+99+99"] keepStatic true - type 12345 - ishytow',
  390. function (assert) {
  391. var $fixture = $("#qunit-fixture");
  392. $fixture.append('<input type="text" id="testmask" />');
  393. var testmask = document.getElementById("testmask");
  394. Inputmask(["9+9", "99+99", "(99)+99+99"], {
  395. keepStatic: true
  396. }).mask(testmask);
  397. $("#testmask").Type("12345");
  398. assert.equal(testmask.value, "(12)+34+5_", "Result " + testmask.value);
  399. }
  400. );
  401. qunit.test(
  402. '["9+9", "99+99", "(99)+99+99"] keepStatic true - type 1234 - ishytow',
  403. function (assert) {
  404. var $fixture = $("#qunit-fixture");
  405. $fixture.append('<input type="text" id="testmask" />');
  406. var testmask = document.getElementById("testmask");
  407. Inputmask(["9+9", "99+99", "(99)+99+99"], {
  408. keepStatic: true
  409. }).mask(testmask);
  410. $("#testmask").Type("1234");
  411. assert.equal(testmask.value, "12+34", "Result " + testmask.value);
  412. }
  413. );
  414. qunit.test(
  415. '["999-9999", "(999) 999-9999", "1-(999) 999-9999"] - 999-9999 - carylewis',
  416. function (assert) {
  417. var $fixture = $("#qunit-fixture");
  418. $fixture.append('<input type="text" id="testmask" />');
  419. var testmask = document.getElementById("testmask");
  420. Inputmask(["999-9999", "(999) 999-9999", "1-(999) 999-9999"]).mask(
  421. testmask
  422. );
  423. $("#testmask").Type("1231234");
  424. assert.equal(testmask.value, "123-1234", "Result " + testmask.value);
  425. }
  426. );
  427. qunit.test(
  428. '["999-9999", "(999) 999-9999", "1-(999) 999-9999"] - (999) 999-9999 - carylewis',
  429. function (assert) {
  430. var $fixture = $("#qunit-fixture");
  431. $fixture.append('<input type="text" id="testmask" />');
  432. var testmask = document.getElementById("testmask");
  433. Inputmask(["999-9999", "(999) 999-9999", "1-(999) 999-9999"]).mask(
  434. testmask
  435. );
  436. $("#testmask").Type("1231231234");
  437. assert.equal(
  438. testmask.value,
  439. "(123) 123-1234",
  440. "Result " + testmask.value
  441. );
  442. }
  443. );
  444. qunit.test(
  445. '["999-9999", "(999) 999-9999", "1-(999) 999-9999"] - 1-(999) 999-9999 - carylewis',
  446. function (assert) {
  447. var $fixture = $("#qunit-fixture");
  448. $fixture.append('<input type="text" id="testmask" />');
  449. var testmask = document.getElementById("testmask");
  450. Inputmask(["999-9999", "(999) 999-9999", "1-(999) 999-9999"]).mask(
  451. testmask
  452. );
  453. $("#testmask").Type("11231231234");
  454. assert.equal(
  455. testmask.value,
  456. "1-(123) 123-1234",
  457. "Result " + testmask.value
  458. );
  459. }
  460. );
  461. qunit.test("(99[9]) 99999-99999 - #2619", function (assert) {
  462. var $fixture = $("#qunit-fixture");
  463. $fixture.append('<input type="text" id="testmask" />');
  464. var testmask = document.getElementById("testmask");
  465. Inputmask("(99[9]) 99999-99999", {
  466. keepStatic: true
  467. }).mask(testmask);
  468. $("#testmask").Type("123456789012");
  469. assert.equal(
  470. testmask.value,
  471. "(12) 34567-89012",
  472. "Result " + testmask.value
  473. );
  474. });
  475. qunit.test("(99[9]) 99999-99999 #2 - #2619", function (assert) {
  476. var $fixture = $("#qunit-fixture");
  477. $fixture.append('<input type="text" id="testmask" />');
  478. var testmask = document.getElementById("testmask");
  479. Inputmask("(99[9]) 99999-99999", {
  480. keepStatic: true
  481. }).mask(testmask);
  482. $("#testmask").Type("1234567890123");
  483. assert.equal(
  484. testmask.value,
  485. "(123) 45678-90123",
  486. "Result " + testmask.value
  487. );
  488. });
  489. }