tests_optional.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  1. import { keys } from "../lib/keycode";
  2. export default function (qunit, Inputmask) {
  3. var $ = Inputmask.dependencyLib;
  4. qunit.module("Optional");
  5. qunit.test(
  6. 'inputmask("(99) 9999[9]-99999") - input 121234-12345',
  7. function (assert) {
  8. var $fixture = $("#qunit-fixture");
  9. $fixture.append('<input type="text" id="testmask" />');
  10. var testmask = document.getElementById("testmask");
  11. Inputmask("(99) 9999[9]-99999").mask(testmask);
  12. testmask.focus();
  13. $("#testmask").Type("121234-12345");
  14. assert.equal(
  15. testmask.value,
  16. "(12) 1234-12345",
  17. "Result " + testmask.value
  18. );
  19. }
  20. );
  21. qunit.test(
  22. 'inputmask("(99) 9999[9]-99999") - input 121234512345',
  23. function (assert) {
  24. var $fixture = $("#qunit-fixture");
  25. $fixture.append('<input type="text" id="testmask" />');
  26. var testmask = document.getElementById("testmask");
  27. Inputmask("(99) 9999[9]-99999").mask(testmask);
  28. testmask.focus();
  29. $("#testmask").Type("121234512345");
  30. assert.equal(
  31. testmask.value,
  32. "(12) 12345-12345",
  33. "Result " + testmask.value
  34. );
  35. }
  36. );
  37. qunit.test(
  38. 'inputmask({ mask: "99999[-9999]", greedy: true }) - input 123',
  39. function (assert) {
  40. var $fixture = $("#qunit-fixture");
  41. $fixture.append('<input type="text" id="testmask" />');
  42. var testmask = document.getElementById("testmask");
  43. Inputmask({
  44. mask: "99999[-9999]",
  45. greedy: true
  46. }).mask(testmask);
  47. testmask.focus();
  48. $("#testmask").Type("123");
  49. assert.equal(testmask.value, "123__", "Result " + testmask.value);
  50. }
  51. );
  52. qunit.test(
  53. 'inputmask({ mask: "99999[-9999]", greedy: false }) - input 123',
  54. function (assert) {
  55. var $fixture = $("#qunit-fixture");
  56. $fixture.append('<input type="text" id="testmask" />');
  57. var testmask = document.getElementById("testmask");
  58. Inputmask({
  59. mask: "99999[-9999]",
  60. greedy: false
  61. }).mask(testmask);
  62. testmask.focus();
  63. $("#testmask").Type("123");
  64. assert.equal(testmask.value, "123__", "Result " + testmask.value);
  65. }
  66. );
  67. qunit.test(
  68. 'inputmask({ mask: "99999[-9999]", greedy: false }) - input 12345',
  69. function (assert) {
  70. var $fixture = $("#qunit-fixture");
  71. $fixture.append('<input type="text" id="testmask" />');
  72. var testmask = document.getElementById("testmask");
  73. Inputmask({
  74. mask: "99999[-9999]",
  75. greedy: false
  76. }).mask(testmask);
  77. testmask.focus();
  78. $("#testmask").Type("12345");
  79. assert.equal(testmask.value, "12345", "Result " + testmask.value);
  80. }
  81. );
  82. qunit.test(
  83. 'inputmask({ mask: "99999[-9999]", greedy: false }) - input 123456',
  84. function (assert) {
  85. var $fixture = $("#qunit-fixture");
  86. $fixture.append('<input type="text" id="testmask" />');
  87. var testmask = document.getElementById("testmask");
  88. Inputmask({
  89. mask: "99999[-9999]",
  90. greedy: false
  91. }).mask(testmask);
  92. testmask.focus();
  93. $("#testmask").Type("123456");
  94. assert.equal(testmask.value, "12345-6___", "Result " + testmask.value);
  95. }
  96. );
  97. qunit.test(
  98. 'inputmask({ mask: "99999[-9999]", greedy: false }) - input 123456789',
  99. function (assert) {
  100. var $fixture = $("#qunit-fixture");
  101. $fixture.append('<input type="text" id="testmask" />');
  102. var testmask = document.getElementById("testmask");
  103. Inputmask({
  104. mask: "99999[-9999]",
  105. greedy: false
  106. }).mask(testmask);
  107. testmask.focus();
  108. $("#testmask").Type("123456789");
  109. assert.equal(testmask.value, "12345-6789", "Result " + testmask.value);
  110. }
  111. );
  112. qunit.test(
  113. 'inputmask("9[9][9] 999[9] 9999") - input 123123 space 1234 - vipink70',
  114. function (assert) {
  115. var $fixture = $("#qunit-fixture");
  116. $fixture.append('<input type="text" id="testmask" />');
  117. var testmask = document.getElementById("testmask");
  118. Inputmask("9[9][9] 999[9] 9999").mask(testmask);
  119. testmask.focus();
  120. $("#testmask").Type("123123");
  121. $("#testmask").SendKey(keys.Space);
  122. $("#testmask").Type("1234");
  123. assert.equal(testmask.value, "123 123 1234", "Result " + testmask.value);
  124. }
  125. );
  126. qunit.test("inputmask('[9-]AAA.999') ", function (assert) {
  127. var $fixture = $("#qunit-fixture");
  128. $fixture.append('<input type="text" id="testmask" />');
  129. var testmask = document.getElementById("testmask");
  130. Inputmask("[9-]AAA.999").mask(testmask);
  131. $("#testmask").Type("1abc123");
  132. $.caret(testmask, 4, 5);
  133. $("#testmask").Type("d");
  134. assert.equal(testmask.value, "1-ABD.123", "Result " + testmask.value);
  135. });
  136. qunit.test("inputmask('9[9]:99') ", function (assert) {
  137. var $fixture = $("#qunit-fixture");
  138. $fixture.append('<input type="text" id="testmask" />');
  139. var testmask = document.getElementById("testmask");
  140. Inputmask("9[9]:99").mask(testmask);
  141. $("#testmask").Type("3:44");
  142. $.caret(testmask, 1);
  143. $("#testmask").Type("3");
  144. assert.equal(testmask.value, "33:44", "Result " + testmask.value);
  145. });
  146. qunit.test(
  147. 'inputmask({ mask: "99999[-9999]", greedy: false }) - input 123456',
  148. function (assert) {
  149. var $fixture = $("#qunit-fixture");
  150. $fixture.append('<input type="text" id="testmask" />');
  151. var testmask = document.getElementById("testmask");
  152. Inputmask({
  153. mask: "99999[-9999]",
  154. greedy: false
  155. }).mask(testmask);
  156. testmask.focus();
  157. $("#testmask").Type("123456");
  158. testmask.blur();
  159. $("#testmask").trigger("mouseenter");
  160. assert.equal(testmask.value, "12345-6___", "Result " + testmask.value);
  161. }
  162. );
  163. qunit.test(
  164. 'inputmask({ mask: "9\'9{1,2}"", greedy: false, skipOptionalPartCharacter: "", "clearIncomplete": true }) - input 12 blur - thomstark',
  165. function (assert) {
  166. var $fixture = $("#qunit-fixture");
  167. $fixture.append('<input type="text" id="testmask" />');
  168. var testmask = document.getElementById("testmask");
  169. Inputmask({
  170. mask: "9'9{1,2}\"",
  171. greedy: false,
  172. skipOptionalPartCharacter: "",
  173. clearIncomplete: true
  174. }).mask(testmask);
  175. testmask.focus();
  176. $("#testmask").Type("12");
  177. testmask.blur();
  178. assert.equal(testmask.value, "1'2\"", "Result " + testmask.value);
  179. }
  180. );
  181. qunit.test(
  182. 'inputmask({ mask: "99{1,2}lb\\s", greedy: false, skipOptionalPartCharacter: "", "clearIncomplete": true }) - input 12 blur - thomstark',
  183. function (assert) {
  184. var $fixture = $("#qunit-fixture");
  185. $fixture.append('<input type="text" id="testmask" />');
  186. var testmask = document.getElementById("testmask");
  187. Inputmask({
  188. mask: "99{1,2}lb\\s",
  189. greedy: false,
  190. skipOptionalPartCharacter: "",
  191. clearIncomplete: true
  192. }).mask(testmask);
  193. testmask.focus();
  194. $("#testmask").Type("12");
  195. testmask.blur();
  196. assert.equal(testmask.value, "12lbs", "Result " + testmask.value);
  197. }
  198. );
  199. qunit.test(
  200. 'inputmask({ mask: "9\'9[9]"", greedy: false, skipOptionalPartCharacter: "", "clearIncomplete": true }) - input 12 blur - thomstark',
  201. function (assert) {
  202. var $fixture = $("#qunit-fixture");
  203. $fixture.append('<input type="text" id="testmask" />');
  204. var testmask = document.getElementById("testmask");
  205. Inputmask({
  206. mask: "9'9[9]\"",
  207. greedy: false,
  208. skipOptionalPartCharacter: "",
  209. clearIncomplete: true
  210. }).mask(testmask);
  211. testmask.focus();
  212. $("#testmask").Type("12");
  213. testmask.blur();
  214. assert.equal(testmask.value, "1'2\"", "Result " + testmask.value);
  215. }
  216. );
  217. qunit.test(
  218. 'inputmask({ mask: "99[9]lb\\s", greedy: false, skipOptionalPartCharacter: "", "clearIncomplete": true }) - input 12 blur - thomstark',
  219. function (assert) {
  220. var $fixture = $("#qunit-fixture");
  221. $fixture.append('<input type="text" id="testmask" />');
  222. var testmask = document.getElementById("testmask");
  223. Inputmask({
  224. mask: "99[9]lb\\s",
  225. greedy: false,
  226. skipOptionalPartCharacter: "",
  227. clearIncomplete: true
  228. }).mask(testmask);
  229. testmask.focus();
  230. $("#testmask").Type("12");
  231. testmask.blur();
  232. assert.equal(testmask.value, "12lbs", "Result " + testmask.value);
  233. }
  234. );
  235. qunit.test(
  236. '.inputmask("99999[-9999]", { greedy: false }); - type 123456 backspace iscomplete?',
  237. function (assert) {
  238. var $fixture = $("#qunit-fixture");
  239. $fixture.append('<input type="text" id="testmask" />');
  240. var testmask = document.getElementById("testmask");
  241. Inputmask("99999[-9999]", {
  242. greedy: false
  243. }).mask(testmask);
  244. testmask.focus();
  245. $("#testmask").Type("123456");
  246. $("#testmask").SendKey(keys.Backspace);
  247. assert.equal(
  248. testmask.inputmask.isComplete(),
  249. true,
  250. "Result " + testmask.inputmask.isComplete()
  251. );
  252. }
  253. );
  254. qunit.test(
  255. '.inputmask("99999[-9999]", { greedy: false }); type 123456 backspace blur',
  256. function (assert) {
  257. var $fixture = $("#qunit-fixture"),
  258. done = assert.async();
  259. $fixture.append('<input type="text" id="testmask" />');
  260. var testmask = document.getElementById("testmask");
  261. Inputmask("99999[-9999]", {
  262. greedy: false
  263. }).mask(testmask);
  264. testmask.focus();
  265. setTimeout(function () {
  266. $("#testmask").Type("123456");
  267. $("#testmask").SendKey(keys.Backspace);
  268. testmask.blur();
  269. setTimeout(function () {
  270. assert.equal(
  271. $("#testmask")[0].inputmask._valueGet(),
  272. "12345",
  273. "Result " + $("#testmask")[0].inputmask._valueGet()
  274. );
  275. done();
  276. }, 0);
  277. }, 0);
  278. }
  279. );
  280. qunit.test(
  281. '.inputmask("99999[-9999]", { greedy: false, autoUnmask: true }); type 123456 backspace',
  282. function (assert) {
  283. var $fixture = $("#qunit-fixture"),
  284. done = assert.async();
  285. $fixture.append('<input type="text" id="testmask" />');
  286. var testmask = document.getElementById("testmask");
  287. Inputmask("99999[-9999]", {
  288. greedy: false,
  289. autoUnmask: true
  290. }).mask(testmask);
  291. testmask.focus();
  292. $("#testmask").Type("123456");
  293. $("#testmask").SendKey(keys.Backspace);
  294. setTimeout(function () {
  295. assert.equal(testmask.value, "12345", "Result " + testmask.value);
  296. done();
  297. }, 0);
  298. }
  299. );
  300. qunit.test(
  301. ".inputmask('999-999-9999[ ext 9{1,5}]'); - type 12345678901 backspace iscomplete? - antch",
  302. function (assert) {
  303. var $fixture = $("#qunit-fixture");
  304. $fixture.append('<input type="text" id="testmask" />');
  305. var testmask = document.getElementById("testmask");
  306. Inputmask("999-999-9999[ ext 9{1,5}]").mask(testmask);
  307. testmask.focus();
  308. $("#testmask").Type("12345678901");
  309. $("#testmask").SendKey(keys.Backspace);
  310. assert.equal(
  311. testmask.inputmask.isComplete(),
  312. true,
  313. "Result " + testmask.inputmask.isComplete()
  314. );
  315. }
  316. );
  317. qunit.test(
  318. 'inputmask({ mask: "9999[ 9999][ 9999]"}) - input 1234 space space - GMTA',
  319. function (assert) {
  320. var $fixture = $("#qunit-fixture");
  321. $fixture.append('<input type="text" id="testmask" />');
  322. var testmask = document.getElementById("testmask");
  323. Inputmask({
  324. mask: "9999[ 9999][ 9999]"
  325. }).mask(testmask);
  326. testmask.focus();
  327. $("#testmask").Type("1234 ");
  328. assert.equal(testmask.value, "1234", "Result " + testmask.value);
  329. }
  330. );
  331. qunit.test("9999[ 9999][ 9999][ 9999][ 999] - Enfree", function (assert) {
  332. var $fixture = $("#qunit-fixture");
  333. $fixture.append('<input type="text" id="testmask" />');
  334. var testmask = document.getElementById("testmask");
  335. Inputmask({
  336. mask: "9999[ 9999][ 9999][ 9999][ 999]",
  337. placeholder: "",
  338. greedy: false
  339. }).mask(testmask);
  340. testmask.focus();
  341. $("#testmask").Type("45464748");
  342. $.caret(testmask, 2);
  343. $("#testmask").Type("0909");
  344. assert.equal(testmask.value, "4509 0946 4748", "Result " + testmask.value);
  345. });
  346. qunit.test("a{+} XYZ 9 - #2529", function (assert) {
  347. var $fixture = $("#qunit-fixture");
  348. $fixture.append('<input type="text" id="testmask" />');
  349. var testmask = document.getElementById("testmask");
  350. Inputmask({
  351. mask: "a{+} XYZ 9"
  352. }).mask(testmask);
  353. testmask.focus();
  354. $("#testmask").Type("abcd1");
  355. $.caret(testmask, 0, testmask.value.length - 2);
  356. $("#testmask").SendKey(keys.Delete);
  357. $("#testmask").Type("abcd");
  358. assert.equal(testmask.value, "abcd XYZ 1", "Result " + testmask.value);
  359. });
  360. qunit.test("999[- 999] type 123456", function (assert) {
  361. var $fixture = $("#qunit-fixture");
  362. $fixture.append('<input type="text" id="testmask" />');
  363. var testmask = document.getElementById("testmask");
  364. Inputmask({
  365. mask: "999[- 999]"
  366. }).mask(testmask);
  367. testmask.focus();
  368. $("#testmask").Type("123456");
  369. assert.equal(testmask.value, "123- 456", "Result " + testmask.value);
  370. });
  371. qunit.test("999[- 999] type 123456777777777777", function (assert) {
  372. var $fixture = $("#qunit-fixture");
  373. $fixture.append('<input type="text" id="testmask" />');
  374. var testmask = document.getElementById("testmask");
  375. Inputmask({
  376. mask: "999[- 999]"
  377. }).mask(testmask);
  378. testmask.focus();
  379. $("#testmask").Type("123456777777777777");
  380. assert.equal(testmask.value, "123- 456", "Result " + testmask.value);
  381. });
  382. }