tests_date.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534
  1. export default function (qunit, $, Inputmask) {
  2. function pad(val, len) {
  3. val = String(val);
  4. len = len || 2;
  5. while (val.length < len) val = "0" + val;
  6. return val;
  7. }
  8. qunit.module("Date.Extensions - dd/mm/yyyy");
  9. qunit.test("valid entry", function (assert) {
  10. var $fixture = $("#qunit-fixture");
  11. $fixture.append('<input type="text" id="testmask" />');
  12. var testmask = document.getElementById("testmask");
  13. Inputmask("datetime", {
  14. inputFormat: "dd/mm/yyyy"
  15. }).mask(testmask);
  16. testmask.focus();
  17. $("#testmask").Type("2331973");
  18. assert.equal(testmask.value, "23/03/1973", "Result " + testmask.value);
  19. });
  20. qunit.test("invalid entry", function (assert) {
  21. var $fixture = $("#qunit-fixture");
  22. $fixture.append('<input type="text" id="testmask" />');
  23. var testmask = document.getElementById("testmask");
  24. Inputmask("datetime", {
  25. inputFormat: "dd/mm/yyyy"
  26. }).mask(testmask);
  27. testmask.focus();
  28. $("#testmask").Type("abcdefghijklmnop");
  29. assert.equal(testmask.value, "", "Result " + testmask.value);
  30. });
  31. qunit.test("overtype valid entry", function (assert) {
  32. var $fixture = $("#qunit-fixture");
  33. $fixture.append('<input type="text" id="testmask" />');
  34. var testmask = document.getElementById("testmask");
  35. Inputmask("datetime", {
  36. inputFormat: "dd/mm/yyyy"
  37. }).mask(testmask);
  38. testmask.focus();
  39. $("#testmask").Type("2331973");
  40. $.caret(testmask, 0, "23/03/1973".length);
  41. $("#testmask").Type("04102017");
  42. assert.equal(testmask.value, "04/10/2017", "Result " + testmask.value);
  43. });
  44. qunit.test("overtype invalid entry", function (assert) {
  45. var $fixture = $("#qunit-fixture");
  46. $fixture.append('<input type="text" id="testmask" />');
  47. var testmask = document.getElementById("testmask");
  48. Inputmask("datetime", {
  49. inputFormat: "dd/mm/yyyy"
  50. }).mask(testmask);
  51. testmask.focus();
  52. $("#testmask").Type("2331973");
  53. $.caret(testmask, 0, "23/03/1973".length);
  54. $("#testmask").Type("abcdefghijklmnop");
  55. assert.equal(testmask.value, "23/03/1973", "Result " + testmask.value);
  56. });
  57. qunit.test("insert current date", function (assert) {
  58. var $fixture = $("#qunit-fixture");
  59. $fixture.append('<input type="text" id="testmask" />');
  60. var testmask = document.getElementById("testmask");
  61. Inputmask("datetime", {
  62. inputFormat: "dd/mm/yyyy"
  63. }).mask(testmask);
  64. testmask.focus();
  65. $("#testmask").SendKey(Inputmask.keyCode.RIGHT, Inputmask.keyCode.CONTROL);
  66. var today = new Date();
  67. today = pad(today.getDate(), 2) + "/" + pad(parseInt(today.getMonth()) + 1, 2) + "/" + today.getFullYear();
  68. assert.equal(testmask.value, today, "Result " + testmask.value);
  69. });
  70. qunit.test("backspace year", function (assert) {
  71. var $fixture = $("#qunit-fixture");
  72. $fixture.append('<input type="text" id="testmask" />');
  73. var testmask = document.getElementById("testmask");
  74. Inputmask("datetime", {
  75. inputFormat: "dd/mm/yyyy"
  76. }).mask(testmask);
  77. testmask.focus();
  78. $("#testmask").Type("2331973");
  79. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  80. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  81. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  82. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  83. assert.equal(testmask.value, "23/03/yyyy", "Result " + testmask.value);
  84. });
  85. qunit.test("delete year", function (assert) {
  86. var $fixture = $("#qunit-fixture");
  87. $fixture.append('<input type="text" id="testmask" />');
  88. var testmask = document.getElementById("testmask");
  89. Inputmask("datetime", {
  90. inputFormat: "dd/mm/yyyy"
  91. }).mask(testmask);
  92. testmask.focus();
  93. $("#testmask").Type("2331973");
  94. $.caret(testmask, "23/03/".length);
  95. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  96. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  97. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  98. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  99. assert.equal(testmask.value, "23/03/yyyy", "Result " + testmask.value);
  100. });
  101. qunit.test("set date 592017", function (assert) {
  102. var $fixture = $("#qunit-fixture");
  103. $fixture.append('<input type="text" id="testmask" />');
  104. var testmask = document.getElementById("testmask");
  105. Inputmask("datetime", {
  106. inputFormat: "dd/mm/yyyy"
  107. }).mask(testmask);
  108. testmask.focus();
  109. $("#testmask").val("592017");
  110. assert.equal(testmask.value, "05/09/2017", "Result " + testmask.value);
  111. });
  112. qunit.test("set date 01/01/1800 min date 01/01/1900", function (assert) {
  113. var $fixture = $("#qunit-fixture");
  114. $fixture.append('<input type="text" id="testmask" />');
  115. var testmask = document.getElementById("testmask");
  116. Inputmask("datetime", {
  117. inputFormat: "dd/mm/yyyy",
  118. min: "01/01/1900",
  119. max: "31/12/2017"
  120. }).mask(testmask);
  121. testmask.focus();
  122. $("#testmask").val("01011800");
  123. assert.equal(testmask.value, "01/01/1yyy", "Result " + testmask.value);
  124. });
  125. qunit.test("set date 01/01/2018 max date 31/12/2017", function (assert) {
  126. var $fixture = $("#qunit-fixture");
  127. $fixture.append('<input type="text" id="testmask" />');
  128. var testmask = document.getElementById("testmask");
  129. Inputmask("datetime", {
  130. inputFormat: "dd/mm/yyyy",
  131. min: "01/01/1900",
  132. max: "31/12/2017"
  133. }).mask(testmask);
  134. testmask.focus();
  135. $("#testmask").val("01012018");
  136. assert.equal(testmask.value, "01/01/201y", "Result " + testmask.value);
  137. });
  138. qunit.test("set date 01/01/1900 min date 01/01/1900", function (assert) {
  139. var $fixture = $("#qunit-fixture");
  140. $fixture.append('<input type="text" id="testmask" />');
  141. var testmask = document.getElementById("testmask");
  142. Inputmask("datetime", {
  143. inputFormat: "dd/mm/yyyy",
  144. min: "01/01/1900",
  145. max: "31/12/2017"
  146. }).mask(testmask);
  147. testmask.focus();
  148. $("#testmask").val("01011900");
  149. assert.equal(testmask.value, "01/01/1900", "Result " + testmask.value);
  150. });
  151. qunit.test("set date 31/12/2017 max date 31/12/2017", function (assert) {
  152. var $fixture = $("#qunit-fixture");
  153. $fixture.append('<input type="text" id="testmask" />');
  154. var testmask = document.getElementById("testmask");
  155. Inputmask("datetime", {
  156. inputFormat: "dd/mm/yyyy",
  157. min: "01/01/1900",
  158. max: "31/12/2017"
  159. }).mask(testmask);
  160. testmask.focus();
  161. $("#testmask").val("31122017");
  162. assert.equal(testmask.value, "31/12/2017", "Result " + testmask.value);
  163. });
  164. qunit.module("Date.Extensions - mm/dd/yyyy");
  165. qunit.test("valid entry", function (assert) {
  166. var $fixture = $("#qunit-fixture");
  167. $fixture.append('<input type="text" id="testmask" />');
  168. var testmask = document.getElementById("testmask");
  169. Inputmask("datetime", {
  170. inputFormat: "mm/dd/yyyy"
  171. }).mask(testmask);
  172. testmask.focus();
  173. $("#testmask").Type("3231973");
  174. assert.equal(testmask.value, "03/23/1973", "Result " + testmask.value);
  175. });
  176. qunit.test("invalid entry", function (assert) {
  177. var $fixture = $("#qunit-fixture");
  178. $fixture.append('<input type="text" id="testmask" />');
  179. var testmask = document.getElementById("testmask");
  180. Inputmask("datetime", {
  181. inputFormat: "mm/dd/yyyy"
  182. }).mask(testmask);
  183. testmask.focus();
  184. $("#testmask").Type("abcdefghijklmnop");
  185. assert.equal(testmask.value, "", "Result " + testmask.value);
  186. });
  187. qunit.test("overtype valid entry", function (assert) {
  188. var $fixture = $("#qunit-fixture");
  189. $fixture.append('<input type="text" id="testmask" />');
  190. var testmask = document.getElementById("testmask");
  191. Inputmask("datetime", {
  192. inputFormat: "mm/dd/yyyy"
  193. }).mask(testmask);
  194. testmask.focus();
  195. $("#testmask").Type("3231973");
  196. $.caret(testmask, 0, "03/23/1973".length);
  197. $("#testmask").Type("10042017");
  198. assert.equal(testmask.value, "10/04/2017", "Result " + testmask.value);
  199. });
  200. qunit.test("overtype invalid entry", function (assert) {
  201. var $fixture = $("#qunit-fixture");
  202. $fixture.append('<input type="text" id="testmask" />');
  203. var testmask = document.getElementById("testmask");
  204. Inputmask("datetime", {
  205. inputFormat: "mm/dd/yyyy"
  206. }).mask(testmask);
  207. testmask.focus();
  208. $("#testmask").Type("3231973");
  209. $.caret(testmask, 0, "03/23/1973".length);
  210. $("#testmask").Type("abcdefghijklmnop");
  211. assert.equal(testmask.value, "03/23/1973", "Result " + testmask.value);
  212. });
  213. qunit.test("insert current date", function (assert) {
  214. var $fixture = $("#qunit-fixture");
  215. $fixture.append('<input type="text" id="testmask" />');
  216. var testmask = document.getElementById("testmask");
  217. Inputmask("datetime", {
  218. inputFormat: "mm/dd/yyyy"
  219. }).mask(testmask);
  220. testmask.focus();
  221. $("#testmask").SendKey(Inputmask.keyCode.RIGHT, Inputmask.keyCode.CONTROL);
  222. var today = new Date();
  223. today = pad(parseInt(today.getMonth()) + 1, 2) + "/" + pad(today.getDate(), 2) + "/" + today.getFullYear();
  224. assert.equal(testmask.value, today, "Result " + testmask.value);
  225. });
  226. qunit.test("backspace year", function (assert) {
  227. var $fixture = $("#qunit-fixture");
  228. $fixture.append('<input type="text" id="testmask" />');
  229. var testmask = document.getElementById("testmask");
  230. Inputmask("datetime", {
  231. inputFormat: "mm/dd/yyyy"
  232. }).mask(testmask);
  233. testmask.focus();
  234. $("#testmask").Type("3231973");
  235. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  236. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  237. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  238. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  239. assert.equal(testmask.value, "03/23/yyyy", "Result " + testmask.value);
  240. });
  241. qunit.test("delete year", function (assert) {
  242. var $fixture = $("#qunit-fixture");
  243. $fixture.append('<input type="text" id="testmask" />');
  244. var testmask = document.getElementById("testmask");
  245. Inputmask("datetime", {
  246. inputFormat: "mm/dd/yyyy"
  247. }).mask(testmask);
  248. testmask.focus();
  249. $("#testmask").Type("3231973");
  250. $.caret(testmask, "03/23/".length);
  251. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  252. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  253. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  254. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  255. assert.equal(testmask.value, "03/23/yyyy", "Result " + testmask.value);
  256. });
  257. qunit.test("set date 952017", function (assert) {
  258. var $fixture = $("#qunit-fixture");
  259. $fixture.append('<input type="text" id="testmask" />');
  260. var testmask = document.getElementById("testmask");
  261. Inputmask("datetime", {
  262. inputFormat: "mm/dd/yyyy"
  263. }).mask(testmask);
  264. testmask.focus();
  265. $("#testmask").val("952017");
  266. assert.equal(testmask.value, "09/05/2017", "Result " + testmask.value);
  267. });
  268. qunit.test("set date 01/01/1800 min date 01/01/1900", function (assert) {
  269. var $fixture = $("#qunit-fixture");
  270. $fixture.append('<input type="text" id="testmask" />');
  271. var testmask = document.getElementById("testmask");
  272. Inputmask("datetime", {
  273. inputFormat: "mm/dd/yyyy",
  274. min: "01/01/1900",
  275. max: "12/31/2017"
  276. }).mask(testmask);
  277. testmask.focus();
  278. $("#testmask").val("01011800");
  279. assert.equal(testmask.value, "01/01/1yyy", "Result " + testmask.value);
  280. });
  281. qunit.test("set date 01/01/2018 max date 12/31/2017", function (assert) {
  282. var $fixture = $("#qunit-fixture");
  283. $fixture.append('<input type="text" id="testmask" />');
  284. var testmask = document.getElementById("testmask");
  285. Inputmask("datetime", {
  286. inputFormat: "mm/dd/yyyy",
  287. min: "01/01/1900",
  288. max: "12/31/2017"
  289. }).mask(testmask);
  290. testmask.focus();
  291. $("#testmask").val("01012018");
  292. assert.equal(testmask.value, "01/01/201y", "Result " + testmask.value);
  293. });
  294. qunit.test("set date 01/01/1900 min date 01/01/1900", function (assert) {
  295. var $fixture = $("#qunit-fixture");
  296. $fixture.append('<input type="text" id="testmask" />');
  297. var testmask = document.getElementById("testmask");
  298. Inputmask("datetime", {
  299. inputFormat: "mm/dd/yyyy",
  300. min: "01/01/1900",
  301. max: "12/31/2017"
  302. }).mask(testmask);
  303. testmask.focus();
  304. $("#testmask").val("01011900");
  305. assert.equal(testmask.value, "01/01/1900", "Result " + testmask.value);
  306. });
  307. qunit.test("set date 12/31/2017 max date 12/31/2017", function (assert) {
  308. var $fixture = $("#qunit-fixture");
  309. $fixture.append('<input type="text" id="testmask" />');
  310. var testmask = document.getElementById("testmask");
  311. Inputmask("datetime", {
  312. inputFormat: "mm/dd/yyyy",
  313. min: "01/01/1900",
  314. max: "12/31/2017"
  315. }).mask(testmask);
  316. testmask.focus();
  317. $("#testmask").val("12312017");
  318. assert.equal(testmask.value, "12/31/2017", "Result " + testmask.value);
  319. });
  320. qunit.module("Date.Extensions - dd.mm.yyyy");
  321. qunit.test("valid entry", function (assert) {
  322. var $fixture = $("#qunit-fixture");
  323. $fixture.append('<input type="text" id="testmask" />');
  324. var testmask = document.getElementById("testmask");
  325. Inputmask("datetime", {
  326. inputFormat: "dd.mm.yyyy"
  327. }).mask(testmask);
  328. testmask.focus();
  329. $("#testmask").Type("2331973");
  330. assert.equal(testmask.value, "23.03.1973", "Result " + testmask.value);
  331. });
  332. qunit.test("invalid entry", function (assert) {
  333. var $fixture = $("#qunit-fixture");
  334. $fixture.append('<input type="text" id="testmask" />');
  335. var testmask = document.getElementById("testmask");
  336. Inputmask("datetime", {
  337. inputFormat: "dd.mm.yyyy"
  338. }).mask(testmask);
  339. testmask.focus();
  340. $("#testmask").Type("abcdefghijklmnop");
  341. assert.equal(testmask.value, "", "Result " + testmask.value);
  342. });
  343. qunit.test("overtype valid entry", function (assert) {
  344. var $fixture = $("#qunit-fixture");
  345. $fixture.append('<input type="text" id="testmask" />');
  346. var testmask = document.getElementById("testmask");
  347. Inputmask("datetime", {
  348. inputFormat: "dd.mm.yyyy"
  349. }).mask(testmask);
  350. testmask.focus();
  351. $("#testmask").Type("2331973");
  352. $.caret(testmask, 0, "23.03.1973".length);
  353. $("#testmask").Type("04102017");
  354. assert.equal(testmask.value, "04.10.2017", "Result " + testmask.value);
  355. });
  356. qunit.test("overtype invalid entry", function (assert) {
  357. var $fixture = $("#qunit-fixture");
  358. $fixture.append('<input type="text" id="testmask" />');
  359. var testmask = document.getElementById("testmask");
  360. Inputmask("datetime", {
  361. inputFormat: "dd.mm.yyyy"
  362. }).mask(testmask);
  363. testmask.focus();
  364. $("#testmask").Type("2331973");
  365. $.caret(testmask, 0, "23.03.1973".length);
  366. $("#testmask").Type("abcdefghijklmnop");
  367. assert.equal(testmask.value, "23.03.1973", "Result " + testmask.value);
  368. });
  369. qunit.test("insert current date", function (assert) {
  370. var $fixture = $("#qunit-fixture");
  371. $fixture.append('<input type="text" id="testmask" />');
  372. var testmask = document.getElementById("testmask");
  373. Inputmask("datetime", {
  374. inputFormat: "dd.mm.yyyy"
  375. }).mask(testmask);
  376. testmask.focus();
  377. $("#testmask").SendKey(Inputmask.keyCode.RIGHT, Inputmask.keyCode.CONTROL);
  378. var today = new Date();
  379. today = pad(today.getDate(), 2) + "." + pad(parseInt(today.getMonth()) + 1, 2) + "." + today.getFullYear();
  380. assert.equal(testmask.value, today, "Result " + testmask.value);
  381. });
  382. qunit.test("backspace year", function (assert) {
  383. var $fixture = $("#qunit-fixture");
  384. $fixture.append('<input type="text" id="testmask" />');
  385. var testmask = document.getElementById("testmask");
  386. Inputmask("datetime", {
  387. inputFormat: "dd.mm.yyyy"
  388. }).mask(testmask);
  389. testmask.focus();
  390. $("#testmask").Type("2331973");
  391. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  392. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  393. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  394. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  395. assert.equal(testmask.value, "23.03.yyyy", "Result " + testmask.value);
  396. });
  397. qunit.test("delete year", function (assert) {
  398. var $fixture = $("#qunit-fixture");
  399. $fixture.append('<input type="text" id="testmask" />');
  400. var testmask = document.getElementById("testmask");
  401. Inputmask("datetime", {
  402. inputFormat: "dd.mm.yyyy"
  403. }).mask(testmask);
  404. testmask.focus();
  405. $("#testmask").Type("2331973");
  406. $.caret(testmask, "23.03.".length);
  407. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  408. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  409. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  410. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  411. assert.equal(testmask.value, "23.03.yyyy", "Result " + testmask.value);
  412. });
  413. qunit.test("set date 592017", function (assert) {
  414. var $fixture = $("#qunit-fixture");
  415. $fixture.append('<input type="text" id="testmask" />');
  416. var testmask = document.getElementById("testmask");
  417. Inputmask("datetime", {
  418. inputFormat: "dd.mm.yyyy"
  419. }).mask(testmask);
  420. testmask.focus();
  421. $("#testmask").val("592017");
  422. assert.equal(testmask.value, "05.09.2017", "Result " + testmask.value);
  423. });
  424. qunit.test("set date 01.01.1800 min date 01.01.1900", function (assert) {
  425. var $fixture = $("#qunit-fixture");
  426. $fixture.append('<input type="text" id="testmask" />');
  427. var testmask = document.getElementById("testmask");
  428. Inputmask("datetime", {
  429. inputFormat: "dd.mm.yyyy",
  430. min: "01.01.1900",
  431. max: "31.12.2017"
  432. }).mask(testmask);
  433. testmask.focus();
  434. $("#testmask").val("01011800");
  435. assert.equal(testmask.value, "01.01.1yyy", "Result " + testmask.value);
  436. });
  437. qunit.test("set date 01.01.2018 max date 31.12.2017", function (assert) {
  438. var $fixture = $("#qunit-fixture");
  439. $fixture.append('<input type="text" id="testmask" />');
  440. var testmask = document.getElementById("testmask");
  441. Inputmask("datetime", {
  442. inputFormat: "dd.mm.yyyy",
  443. min: "01.01.1900",
  444. max: "31.12.2017"
  445. }).mask(testmask);
  446. testmask.focus();
  447. $("#testmask").val("01012018");
  448. assert.equal(testmask.value, "01.01.201y", "Result " + testmask.value);
  449. });
  450. qunit.test("set date 01/01/1900 min date 01/01/1900", function (assert) {
  451. var $fixture = $("#qunit-fixture");
  452. $fixture.append('<input type="text" id="testmask" />');
  453. var testmask = document.getElementById("testmask");
  454. Inputmask("datetime", {
  455. inputFormat: "dd.mm.yyyy",
  456. min: "01.01.1900",
  457. max: "31.12.2017"
  458. }).mask(testmask);
  459. testmask.focus();
  460. $("#testmask").val("01011900");
  461. assert.equal(testmask.value, "01.01.1900", "Result " + testmask.value);
  462. });
  463. qunit.test("set date 31.12.2017 max date 31.12.2017", function (assert) {
  464. var $fixture = $("#qunit-fixture");
  465. $fixture.append('<input type="text" id="testmask" />');
  466. var testmask = document.getElementById("testmask");
  467. Inputmask("datetime", {
  468. inputFormat: "dd.mm.yyyy",
  469. min: "01.01.1900",
  470. max: "31.12.2017"
  471. }).mask(testmask);
  472. testmask.focus();
  473. $("#testmask").val("31122017");
  474. assert.equal(testmask.value, "31.12.2017", "Result " + testmask.value);
  475. });
  476. };