tests_optional.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  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("Optional");
  14. test("inputmask(\"(99) 9999[9]-99999\") - input 121234-12345", function() {
  15. var $fixture = $("#qunit-fixture");
  16. $fixture.append('<input type="text" id="testmask" />');
  17. var testmask = document.getElementById("testmask");
  18. Inputmask("(99) 9999[9]-99999").mask(testmask);
  19. testmask.focus();
  20. $("#testmask").Type("121234-12345");
  21. equal(testmask.value, "(12) 1234-12345", "Result " + testmask.value);
  22. $("#testmask").remove();
  23. });
  24. test("inputmask(\"(99) 9999[9]-99999\") - input 121234512345", function() {
  25. var $fixture = $("#qunit-fixture");
  26. $fixture.append('<input type="text" id="testmask" />');
  27. var testmask = document.getElementById("testmask");
  28. Inputmask("(99) 9999[9]-99999").mask(testmask);
  29. testmask.focus();
  30. $("#testmask").Type("121234512345");
  31. equal(testmask.value, "(12) 12345-12345", "Result " + testmask.value);
  32. $("#testmask").remove();
  33. });
  34. test("inputmask({ mask: \"99999[-9999]\", greedy: true }) - input 123", function() {
  35. var $fixture = $("#qunit-fixture");
  36. $fixture.append('<input type="text" id="testmask" />');
  37. var testmask = document.getElementById("testmask");
  38. Inputmask({
  39. mask: "99999[-9999]",
  40. greedy: true
  41. }).mask(testmask);
  42. testmask.focus();
  43. $("#testmask").Type("123");
  44. equal(testmask.value, "123__", "Result " + testmask.value);
  45. $("#testmask").remove();
  46. });
  47. test("inputmask({ mask: \"99999[-9999]\", greedy: false }) - input 123", function() {
  48. var $fixture = $("#qunit-fixture");
  49. $fixture.append('<input type="text" id="testmask" />');
  50. var testmask = document.getElementById("testmask");
  51. Inputmask({
  52. mask: "99999[-9999]",
  53. greedy: false
  54. }).mask(testmask);
  55. testmask.focus();
  56. $("#testmask").Type("123");
  57. equal(testmask.value, "123__", "Result " + testmask.value);
  58. $("#testmask").remove();
  59. });
  60. test("inputmask({ mask: \"99999[-9999]\", greedy: false }) - input 12345", function() {
  61. var $fixture = $("#qunit-fixture");
  62. $fixture.append('<input type="text" id="testmask" />');
  63. var testmask = document.getElementById("testmask");
  64. Inputmask({
  65. mask: "99999[-9999]",
  66. greedy: false
  67. }).mask(testmask);
  68. testmask.focus();
  69. $("#testmask").Type("12345");
  70. equal(testmask.value, "12345", "Result " + testmask.value);
  71. $("#testmask").remove();
  72. });
  73. test("inputmask({ mask: \"99999[-9999]\", greedy: false }) - input 123456", function() {
  74. var $fixture = $("#qunit-fixture");
  75. $fixture.append('<input type="text" id="testmask" />');
  76. var testmask = document.getElementById("testmask");
  77. Inputmask({
  78. mask: "99999[-9999]",
  79. greedy: false
  80. }).mask(testmask);
  81. testmask.focus();
  82. $("#testmask").Type("123456");
  83. equal(testmask.value, "12345-6", "Result " + testmask.value);
  84. $("#testmask").remove();
  85. });
  86. test("inputmask({ mask: \"99999[-9999]\", greedy: false }) - input 123456789", function() {
  87. var $fixture = $("#qunit-fixture");
  88. $fixture.append('<input type="text" id="testmask" />');
  89. var testmask = document.getElementById("testmask");
  90. Inputmask({
  91. mask: "99999[-9999]",
  92. greedy: false
  93. }).mask(testmask);
  94. testmask.focus();
  95. $("#testmask").Type("123456789");
  96. equal(testmask.value, "12345-6789", "Result " + testmask.value);
  97. $("#testmask").remove();
  98. });
  99. test("inputmask(\"9[9][9] 999[9] 9999\") - input 123123 space 1234 - vipink70", function() {
  100. var $fixture = $("#qunit-fixture");
  101. $fixture.append('<input type="text" id="testmask" />');
  102. var testmask = document.getElementById("testmask");
  103. Inputmask("9[9][9] 999[9] 9999").mask(testmask);
  104. testmask.focus();
  105. $("#testmask").Type("123123");
  106. $("#testmask").SendKey(Inputmask.keyCode.SPACE);
  107. $("#testmask").Type("1234");
  108. equal(testmask.value, "123 123 1234", "Result " + testmask.value);
  109. $("#testmask").remove();
  110. });
  111. test("inputmask('[9-]AAA.999') ", function() {
  112. var $fixture = $("#qunit-fixture");
  113. $fixture.append('<input type="text" id="testmask" />');
  114. var testmask = document.getElementById("testmask");
  115. Inputmask('[9-]AAA.999').mask(testmask);
  116. $("#testmask").Type("1abc123");
  117. $.caret(testmask, 4, 5);
  118. $("#testmask").Type("d");
  119. equal(testmask.value, "1-ABD.123", "Result " + testmask.value);
  120. $("#testmask").remove();
  121. });
  122. test("inputmask('9[9]:99') ", function() {
  123. var $fixture = $("#qunit-fixture");
  124. $fixture.append('<input type="text" id="testmask" />');
  125. var testmask = document.getElementById("testmask");
  126. Inputmask('9[9]:99').mask(testmask);
  127. $("#testmask").Type("3:44");
  128. $.caret(testmask, 1);
  129. $("#testmask").Type("3");
  130. equal(testmask.value, "33:44", "Result " + testmask.value);
  131. $("#testmask").remove();
  132. });
  133. test("inputmask({ mask: \"99999[-9999]\", greedy: false }) - input 123456", function() {
  134. var $fixture = $("#qunit-fixture");
  135. $fixture.append('<input type="text" id="testmask" />');
  136. var testmask = document.getElementById("testmask");
  137. Inputmask({
  138. mask: "99999[-9999]",
  139. greedy: false
  140. }).mask(testmask);
  141. testmask.focus();
  142. $("#testmask").Type("123456");
  143. testmask.blur();
  144. $("#testmask").trigger("mouseenter");
  145. equal(testmask.value, "12345-6___", "Result " + testmask.value);
  146. $("#testmask").remove();
  147. });
  148. test("inputmask({ mask: \"9'9{1,2}\"\", greedy: false, skipOptionalPartCharacter: \"\", \"clearIncomplete\": true }) - input 12 blur - thomstark", function() {
  149. var $fixture = $("#qunit-fixture");
  150. $fixture.append('<input type="text" id="testmask" />');
  151. var testmask = document.getElementById("testmask");
  152. Inputmask({
  153. mask: "9'9{1,2}\"",
  154. greedy: false,
  155. skipOptionalPartCharacter: "",
  156. "clearIncomplete": true
  157. }).mask(testmask);
  158. testmask.focus();
  159. $("#testmask").Type("12");
  160. testmask.blur();
  161. equal(testmask.value, "1'2\"", "Result " + testmask.value);
  162. $("#testmask").remove();
  163. });
  164. test("inputmask({ mask: \"99{1,2}lb\\s\", greedy: false, skipOptionalPartCharacter: \"\", \"clearIncomplete\": true }) - input 12 blur - thomstark", function() {
  165. var $fixture = $("#qunit-fixture");
  166. $fixture.append('<input type="text" id="testmask" />');
  167. var testmask = document.getElementById("testmask");
  168. Inputmask({
  169. mask: "99{1,2}lb\\s",
  170. greedy: false,
  171. skipOptionalPartCharacter: "",
  172. "clearIncomplete": true
  173. }).mask(testmask);
  174. testmask.focus();
  175. $("#testmask").Type("12");
  176. testmask.blur();
  177. equal(testmask.value, "12lbs", "Result " + testmask.value);
  178. $("#testmask").remove();
  179. });
  180. test("inputmask({ mask: \"9'9[9]\"\", greedy: false, skipOptionalPartCharacter: \"\", \"clearIncomplete\": true }) - input 12 blur - thomstark", function() {
  181. var $fixture = $("#qunit-fixture");
  182. $fixture.append('<input type="text" id="testmask" />');
  183. var testmask = document.getElementById("testmask");
  184. Inputmask({
  185. mask: "9'9[9]\"",
  186. greedy: false,
  187. skipOptionalPartCharacter: "",
  188. "clearIncomplete": true
  189. }).mask(testmask);
  190. testmask.focus();
  191. $("#testmask").Type("12");
  192. testmask.blur();
  193. equal(testmask.value, "1'2\"", "Result " + testmask.value);
  194. $("#testmask").remove();
  195. });
  196. test("inputmask({ mask: \"99[9]lb\\s\", greedy: false, skipOptionalPartCharacter: \"\", \"clearIncomplete\": true }) - input 12 blur - thomstark", function() {
  197. var $fixture = $("#qunit-fixture");
  198. $fixture.append('<input type="text" id="testmask" />');
  199. var testmask = document.getElementById("testmask");
  200. Inputmask({
  201. mask: "99[9]lb\\s",
  202. greedy: false,
  203. skipOptionalPartCharacter: "",
  204. "clearIncomplete": true
  205. }).mask(testmask);
  206. testmask.focus();
  207. $("#testmask").Type("12");
  208. testmask.blur();
  209. equal(testmask.value, "12lbs", "Result " + testmask.value);
  210. $("#testmask").remove();
  211. });
  212. test(".inputmask(\"99999[-9999]\", { greedy: false }); - type 123456 backspace iscomplete?", function() {
  213. var $fixture = $("#qunit-fixture");
  214. $fixture.append('<input type="text" id="testmask" />');
  215. var testmask = document.getElementById("testmask");
  216. Inputmask("99999[-9999]", {
  217. greedy: false
  218. }).mask(testmask);
  219. testmask.focus();
  220. $("#testmask").Type("123456");
  221. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  222. equal(testmask.inputmask.isComplete(), true, "Result " + testmask.inputmask.isComplete());
  223. $("#testmask").remove();
  224. });
  225. asyncTest(".inputmask(\"99999[-9999]\", { greedy: false }); type 123456 backspace blur", function() {
  226. var $fixture = $("#qunit-fixture");
  227. $fixture.append('<input type="text" id="testmask" />');
  228. var testmask = document.getElementById("testmask");
  229. Inputmask("99999[-9999]", {
  230. greedy: false
  231. }).mask(testmask);
  232. testmask.focus();
  233. $("#testmask").Type("123456");
  234. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  235. testmask.blur();
  236. setTimeout(function() {
  237. start();
  238. equal($("#testmask")[0].inputmask._valueGet(), "12345", "Result " + $("#testmask")[0].inputmask._valueGet());
  239. $("#testmask").remove();
  240. }, 0);
  241. });
  242. asyncTest(".inputmask(\"99999[-9999]\", { greedy: false, autoUnmask: true }); type 123456 backspace", function() {
  243. var $fixture = $("#qunit-fixture");
  244. $fixture.append('<input type="text" id="testmask" />');
  245. var testmask = document.getElementById("testmask");
  246. Inputmask("99999[-9999]", {
  247. greedy: false,
  248. autoUnmask: true
  249. }).mask(testmask);
  250. testmask.focus();
  251. $("#testmask").Type("123456");
  252. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  253. setTimeout(function() {
  254. start();
  255. equal(testmask.value, "12345", "Result " + testmask.value);
  256. $("#testmask").remove();
  257. }, 0);
  258. });
  259. test(".inputmask('999-999-9999[ ext 9{1,5}]'); - type 12345678901 backspace iscomplete? - antch", function() {
  260. var $fixture = $("#qunit-fixture");
  261. $fixture.append('<input type="text" id="testmask" />');
  262. var testmask = document.getElementById("testmask");
  263. Inputmask('999-999-9999[ ext 9{1,5}]').mask(testmask);
  264. testmask.focus();
  265. $("#testmask").Type("12345678901");
  266. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  267. equal(testmask.inputmask.isComplete(), true, "Result " + testmask.inputmask.isComplete());
  268. $("#testmask").remove();
  269. });
  270. test("inputmask({ mask: \"9999[ 9999][ 9999]\"}) - input 1234 space space - GMTA", function() {
  271. var $fixture = $("#qunit-fixture");
  272. $fixture.append('<input type="text" id="testmask" />');
  273. var testmask = document.getElementById("testmask");
  274. Inputmask({
  275. mask: "9999[ 9999][ 9999]"
  276. }).mask(testmask);
  277. testmask.focus();
  278. $("#testmask").Type("1234 ");
  279. equal(testmask.value, "1234", "Result " + testmask.value);
  280. $("#testmask").remove();
  281. });
  282. });