tests_dynamic.js 12 KB

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