tests_dynamic.js 11 KB

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