tests_dynamic.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  1. export default function (qunit, Inputmask) {
  2. var $ = Inputmask.dependencyLib;
  3. qunit.module("Dynamic Masks");
  4. qunit.test("inputmask(\"9-a{3}9{3}\" - simple dynamic mask", function (assert) {
  5. var $fixture = $("#qunit-fixture");
  6. $fixture.append('<input type="text" id="testmask" />');
  7. var testmask = document.getElementById("testmask");
  8. Inputmask("9-a{3}9{3}").mask(testmask);
  9. testmask.focus();
  10. $("#testmask").Type("1abc123");
  11. assert.equal(testmask.value, "1-abc123", "Result " + testmask.value);
  12. });
  13. qunit.test("inputmask(\"9-a{1,3}9{1,3}\" - simple dynamic mask", function (assert) {
  14. var $fixture = $("#qunit-fixture");
  15. $fixture.append('<input type="text" id="testmask" />');
  16. var testmask = document.getElementById("testmask");
  17. Inputmask("9-a{1,3}9{1,3}").mask(testmask);
  18. testmask.focus();
  19. $("#testmask").Type("1a1");
  20. assert.equal(testmask.value, "1-a1", "Result " + testmask.value);
  21. });
  22. qunit.test("inputmask(\"9-a{1,3}9{1,3}\" - simple dynamic mask - greedy false", function (assert) {
  23. var $fixture = $("#qunit-fixture");
  24. $fixture.append('<input type="text" id="testmask" />');
  25. var testmask = document.getElementById("testmask");
  26. Inputmask("9-a{1,3}9{1,3}", {
  27. greedy: false
  28. }).mask(testmask);
  29. testmask.focus();
  30. $("#testmask").Type("1a1");
  31. assert.equal(testmask.value, "1-a1", "Result " + testmask.value);
  32. });
  33. qunit.test("inputmask(\"9-a{1,3}/9{2,3}\" - simple dynamic mask - greedy true", function (assert) {
  34. var $fixture = $("#qunit-fixture");
  35. $fixture.append('<input type="text" id="testmask" />');
  36. var testmask = document.getElementById("testmask");
  37. Inputmask("9-a{1,3}/9{2,3}", {
  38. greedy: true
  39. }).mask(testmask);
  40. testmask.focus();
  41. $("#testmask").Type("1a/123");
  42. assert.equal(testmask.value, "1-a/123", "Result " + testmask.value);
  43. });
  44. qunit.test("email mask greedy false", function (assert) {
  45. var $fixture = $("#qunit-fixture");
  46. $fixture.append('<input type="text" id="testmask" />');
  47. var testmask = document.getElementById("testmask");
  48. Inputmask("email", {
  49. greedy: false
  50. }).mask(testmask);
  51. testmask.focus();
  52. $("#testmask").Type("some.body@mail.com");
  53. testmask.blur();
  54. assert.equal(testmask.value, "some.body@mail.com", "Result " + testmask.value);
  55. });
  56. qunit.test("email mask greedy true", function (assert) {
  57. var done = assert.async(),
  58. $fixture = $("#qunit-fixture");
  59. $fixture.append('<input type="text" id="testmask" />');
  60. var testmask = document.getElementById("testmask");
  61. Inputmask("email", {
  62. greedy: true
  63. }).mask(testmask);
  64. testmask.focus();
  65. $("#testmask").Type("some.body@mail.com");
  66. testmask.blur();
  67. setTimeout(function () {
  68. assert.equal(testmask.value, "some.body@mail.com", "Result " + testmask.value);
  69. done();
  70. }, 0);
  71. });
  72. qunit.test("email mask - partial input", function (assert) {
  73. var $fixture = $("#qunit-fixture");
  74. $fixture.append('<input type="text" id="testmask" />');
  75. var testmask = document.getElementById("testmask");
  76. Inputmask("email").mask(testmask);
  77. testmask.focus();
  78. $("#testmask").Type("some.");
  79. testmask.blur();
  80. assert.equal(testmask.value, "some.@_._", "Result " + testmask.value);
  81. });
  82. qunit.test("email mask - partial input 2", function (assert) {
  83. var $fixture = $("#qunit-fixture");
  84. $fixture.append('<input type="text" id="testmask" />');
  85. var testmask = document.getElementById("testmask");
  86. Inputmask("email").mask(testmask);
  87. testmask.focus();
  88. $("#testmask").Type("some@mail.com");
  89. $.caret(testmask, 4);
  90. $("#testmask").Type(".body");
  91. assert.equal(testmask.value, "some.body@mail.com", "Result " + testmask.value);
  92. });
  93. qunit.test("email mask - babu@us.lufthansa.com - babupca", function (assert) {
  94. var $fixture = $("#qunit-fixture");
  95. $fixture.append('<input type="text" id="testmask" />');
  96. var testmask = document.getElementById("testmask");
  97. Inputmask("email").mask(testmask);
  98. testmask.focus();
  99. $("#testmask").Type("babu@us.lufthansa.com");
  100. assert.equal(testmask.value, "babu@us.lufthansa.com", "Result " + testmask.value);
  101. });
  102. qunit.test("email mask - email@subdomain.domain.com - babupca", function (assert) {
  103. var $fixture = $("#qunit-fixture");
  104. $fixture.append('<input type="text" id="testmask" />');
  105. var testmask = document.getElementById("testmask");
  106. Inputmask("email").mask(testmask);
  107. testmask.focus();
  108. $("#testmask").Type("email@subdomain.domain.com");
  109. assert.equal(testmask.value, "email@subdomain.domain.com", "Result " + testmask.value);
  110. });
  111. qunit.test("email mask - paste test.test@test.com - Kurumas", 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("email").mask(testmask);
  117. testmask.focus();
  118. $("#testmask").paste("test.test@test.com");
  119. setTimeout(function () {
  120. assert.equal(testmask.value, "test.test@test.com", "Result " + testmask.value);
  121. done();
  122. }, 0);
  123. });
  124. qunit.test("quantifier mask greedy false - FairSite2C", function (assert) {
  125. var $fixture = $("#qunit-fixture");
  126. $fixture.append('<input type="text" id="testmask" />');
  127. var testmask = document.getElementById("testmask");
  128. Inputmask("9{0,4}", {
  129. greedy: false
  130. }).mask(testmask);
  131. testmask.focus();
  132. $("#testmask").Type("123");
  133. assert.equal(testmask.value, "123", "Result " + testmask.value);
  134. });
  135. qunit.test("quantifier mask greedy true - FairSite2C", function (assert) {
  136. var $fixture = $("#qunit-fixture");
  137. $fixture.append('<input type="text" id="testmask" />');
  138. var testmask = document.getElementById("testmask");
  139. Inputmask("9{0,4}", {
  140. greedy: true
  141. }).mask(testmask);
  142. testmask.focus();
  143. $("#testmask").Type("123");
  144. assert.equal(testmask.value, "123", "Result " + testmask.value);
  145. });
  146. qunit.test("email mask - clearIncomplete - hiddenman", function (assert) {
  147. var done = assert.async(),
  148. $fixture = $("#qunit-fixture");
  149. $fixture.append('<input type="text" id="testmask" />');
  150. var testmask = document.getElementById("testmask");
  151. Inputmask("email", {
  152. clearIncomplete: true
  153. }).mask(testmask);
  154. testmask.focus();
  155. $("#testmask").Type("akornilov");
  156. testmask.blur();
  157. setTimeout(function () {
  158. assert.equal(document.getElementById("testmask").inputmask._valueGet(), "", "Result " + document.getElementById("testmask").inputmask._valueGet());
  159. done();
  160. }, 0);
  161. });
  162. qunit.test("email mask - clearIncomplete - hiddenman", function (assert) {
  163. var done = assert.async(),
  164. $fixture = $("#qunit-fixture");
  165. $fixture.append('<input type="text" id="testmask" />');
  166. var testmask = document.getElementById("testmask");
  167. Inputmask("email", {
  168. clearIncomplete: true
  169. }).mask(testmask);
  170. testmask.focus();
  171. $("#testmask").Type("akornilov@");
  172. testmask.blur();
  173. setTimeout(function () {
  174. assert.equal(document.getElementById("testmask").inputmask._valueGet(), "", "Result " + document.getElementById("testmask").inputmask._valueGet());
  175. done();
  176. }, 0);
  177. });
  178. qunit.test("email mask - clearIncomplete - hiddenman", function (assert) {
  179. var done = assert.async(),
  180. $fixture = $("#qunit-fixture");
  181. $fixture.append('<input type="text" id="testmask" />');
  182. var testmask = document.getElementById("testmask");
  183. Inputmask("email", {
  184. clearIncomplete: true
  185. }).mask(testmask);
  186. testmask.focus();
  187. $("#testmask").Type("akornilov@gmail.com");
  188. testmask.blur();
  189. setTimeout(function () {
  190. assert.equal(document.getElementById("testmask").inputmask._valueGet(), "akornilov@gmail.com", "Result " + document.getElementById("testmask").inputmask._valueGet());
  191. done();
  192. }, 0);
  193. });
  194. qunit.test("mask: '\\\\a{*}', repeat: 5 - voidmain02", function (assert) {
  195. var $fixture = $("#qunit-fixture");
  196. $fixture.append('<input type="text" id="testmask" />');
  197. var testmask = document.getElementById("testmask");
  198. Inputmask({
  199. mask: '\\\\a{*}',
  200. repeat: 5
  201. }).mask(testmask);
  202. testmask.focus();
  203. $("#testmask").Type("abcd abcd abcd abcd abcd");
  204. assert.equal(document.getElementById("testmask").inputmask._valueGet(), "\\abcd\\abcd\\abcd\\abcd\\abcd", "Result " + document.getElementById("testmask").inputmask._valueGet());
  205. });
  206. qunit.test("[a{1,3}-]9999 - type abc1234 => delete c - ivodopyanov", function (assert) {
  207. var $fixture = $("#qunit-fixture");
  208. $fixture.append('<input type="text" id="testmask" />');
  209. var testmask = document.getElementById("testmask");
  210. Inputmask("[a{1,3}-]9999").mask(testmask);
  211. $("#testmask").Type("abc1234");
  212. $.caret(testmask, 2);
  213. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  214. assert.equal(document.getElementById("testmask").inputmask._valueGet(), "ab-1234", "Result " + document.getElementById("testmask").inputmask._valueGet());
  215. });
  216. qunit.test("email mask - mouseclick to domain part - hiddenman", function (assert) {
  217. var done = assert.async(),
  218. $fixture = $("#qunit-fixture");
  219. $fixture.append('<input type="text" id="testmask" />');
  220. var testmask = document.getElementById("testmask");
  221. Inputmask("email").mask(testmask);
  222. testmask.focus();
  223. $("#testmask").Type("akornilov");
  224. //fake click in position
  225. $.caret(testmask, 10);
  226. $("#testmask").trigger("click");
  227. $("#testmask").Type("gmail.com");
  228. setTimeout(function () {
  229. assert.equal(document.getElementById("testmask").inputmask._valueGet(), "akornilov@gmail.com", "Result " + document.getElementById("testmask").inputmask._valueGet());
  230. done();
  231. }, 0);
  232. });
  233. qunit.test("I{1,3}-ZZ - rgafaric", function (assert) {
  234. var done = assert.async(),
  235. $fixture = $("#qunit-fixture");
  236. $fixture.append('<input type="text" id="testmask" value="VAA" />');
  237. var testmask = document.getElementById("testmask");
  238. Inputmask({
  239. "mask": "I{1,3}-ZZ",
  240. definitions: {
  241. 'Z': {
  242. "validator": "[A-Za-z]",
  243. cardinality: 1
  244. },
  245. 'I': {
  246. "validator": "[ivxlcdmIVXLCDM]",
  247. cardinality: 1
  248. }
  249. }
  250. }).mask(testmask);
  251. testmask.blur();
  252. setTimeout(function () {
  253. assert.equal(document.getElementById("testmask").inputmask._valueGet(), "V-AA", "Result " + document.getElementById("testmask").inputmask._valueGet());
  254. done();
  255. }, 0);
  256. });
  257. qunit.test("email mask - some.body@mail.com - delete before @", function (assert) {
  258. var $fixture = $("#qunit-fixture");
  259. $fixture.append('<input type="text" id="testmask" />');
  260. var testmask = document.getElementById("testmask");
  261. Inputmask("email").mask(testmask);
  262. testmask.focus();
  263. $("#testmask").Type("some.body@mail.com");
  264. $.caret(testmask, 9);
  265. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  266. assert.equal(testmask.value, "some.body@ail.com", "Result " + testmask.value);
  267. });
  268. qunit.test("email mask -123@mail.com - 123 => info", function (assert) {
  269. var $fixture = $("#qunit-fixture");
  270. $fixture.append('<input type="text" id="testmask" />');
  271. var testmask = document.getElementById("testmask");
  272. Inputmask("email").mask(testmask);
  273. testmask.focus();
  274. $("#testmask").Type("123@mail.com");
  275. $.caret(testmask, 0, 3);
  276. $("#testmask").Type("info");
  277. assert.equal(testmask.value, "info@mail.com", "Result " + testmask.value);
  278. });
  279. qunit.test("(aa)|(a.a.)|(aaa)|(aa.a.)|(a.aa.) - incomplete - danielpiterak", function (assert) {
  280. var $fixture = $("#qunit-fixture");
  281. $fixture.append('<input type="text" id="testmask" />');
  282. var testmask = document.getElementById("testmask");
  283. Inputmask("(aa)|(a.a.)|(aaa)|(aa.a.)|(a.aa.)", {
  284. clearMaskOnLostFocus: true,
  285. showMaskOnHover: false,
  286. placeholder: " ",
  287. casing: "upper"
  288. }).mask(testmask);
  289. testmask.focus();
  290. $("#testmask").Type("p.p");
  291. testmask.blur();
  292. assert.equal(testmask.value, "P.P.", "Result " + testmask.value);
  293. });
  294. qunit.test("(aa)|(a.a.)|(aaa)|(aa.a.)|(a.aa.) - complete - danielpiterak", function (assert) {
  295. var $fixture = $("#qunit-fixture");
  296. $fixture.append('<input type="text" id="testmask" />');
  297. var testmask = document.getElementById("testmask");
  298. Inputmask("(aa)|(a.a.)|(aaa)|(aa.a.)|(a.aa.)", {
  299. clearMaskOnLostFocus: true,
  300. showMaskOnHover: false,
  301. placeholder: " ",
  302. casing: "upper"
  303. }).mask(testmask);
  304. testmask.focus();
  305. $("#testmask").Type("p.p.");
  306. testmask.blur();
  307. assert.equal(testmask.value, "P.P.", "Result " + testmask.value);
  308. });
  309. qunit.test("(99){+|1}a - dynamic jit offset", function (assert) {
  310. var $fixture = $("#qunit-fixture");
  311. $fixture.append('<input type="text" id="testmask" />');
  312. var testmask = document.getElementById("testmask");
  313. Inputmask("(99){+|1}a").mask(testmask);
  314. testmask.focus();
  315. $("#testmask").trigger("click");
  316. $("#testmask").Type("1a");
  317. assert.equal(testmask.value, "1a", "Result " + testmask.value);
  318. });
  319. qunit.test("(.999){+|1},00 - Loop trigger in revalidateMask", function (assert) {
  320. var $fixture = $("#qunit-fixture");
  321. $fixture.append('<input type="text" id="testmask" />');
  322. var testmask = document.getElementById("testmask");
  323. Inputmask("(.999){+|1},00", {
  324. radixPoint: ",",
  325. numericInput: true,
  326. placeholder: "0",
  327. definitions: {
  328. "0": {
  329. validator: "[0-9\uFF11-\uFF19]"
  330. }
  331. }
  332. }).mask(testmask);
  333. testmask.focus();
  334. $("#testmask").trigger("click");
  335. $("#testmask").Type("123333333333333333333333");
  336. assert.equal(testmask.value, "0,12", "Result " + testmask.value);
  337. });
  338. qunit.test("a9{+} - Loop trigger in revalidateMask", function (assert) {
  339. var $fixture = $("#qunit-fixture");
  340. $fixture.append('<input type="text" id="testmask" />');
  341. var testmask = document.getElementById("testmask");
  342. Inputmask("a9{+}").mask(testmask);
  343. testmask.focus();
  344. $("#testmask").trigger("click");
  345. $("#testmask").Type("a");
  346. $.caret(testmask, 0);
  347. $("#testmask").Type("a");
  348. assert.equal(testmask.value, "a_", "Result " + testmask.value);
  349. });
  350. qunit.test("Loop trigger in gettests", function (assert) {
  351. var $fixture = $("#qunit-fixture");
  352. $fixture.append('<input type="text" id="testmask" />');
  353. var testmask = document.getElementById("testmask");
  354. Inputmask({
  355. "mask": "(99) 99999-9999[ ]",
  356. "repeat": "*"
  357. }).mask(testmask);
  358. testmask.focus();
  359. $("#testmask").trigger("click");
  360. $("#testmask").Type("12123451234");
  361. assert.equal(testmask.value, "(12) 12345-1234", "Result " + testmask.value);
  362. });
  363. };