tests_numeric.js 78 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561
  1. import { keys } from "../lib/keycode";
  2. export default function (qunit, Inputmask) {
  3. const $ = Inputmask.dependencyLib;
  4. qunit.module("Numeric.Extensions - numeric");
  5. qunit.test("numeric - type 1234.56", function (assert) {
  6. const done = assert.async(),
  7. $fixture = $("#qunit-fixture");
  8. $fixture.append('<input type="text" id="testmask" />');
  9. const testmask = document.getElementById("testmask");
  10. Inputmask("numeric").mask(testmask);
  11. testmask.focus();
  12. $("#testmask").trigger("click");
  13. setTimeout(function () {
  14. $("#testmask").Type("1234.56");
  15. assert.equal(testmask.value, "1234.56", "Result " + testmask.value);
  16. done();
  17. }, 0);
  18. });
  19. qunit.test("numeric - type 1234.56 + type 7 between 12", function (assert) {
  20. const done = assert.async(),
  21. $fixture = $("#qunit-fixture");
  22. $fixture.append('<input type="text" id="testmask" />');
  23. const testmask = document.getElementById("testmask");
  24. Inputmask("numeric").mask(testmask);
  25. testmask.focus();
  26. $("#testmask").trigger("click");
  27. setTimeout(function () {
  28. $("#testmask").Type("1234.56");
  29. $.caret(testmask, 1);
  30. $("#testmask").Type("7");
  31. assert.equal(testmask.value, "17234.56", "Result " + testmask.value);
  32. done();
  33. }, 0);
  34. });
  35. qunit.module("Numeric.Extensions - currency");
  36. qunit.test("currency - type 1234.56", function (assert) {
  37. const done = assert.async(),
  38. $fixture = $("#qunit-fixture");
  39. $fixture.append('<input type="text" id="testmask" />');
  40. const testmask = document.getElementById("testmask");
  41. Inputmask("currency", {
  42. prefix: "$ "
  43. }).mask(testmask);
  44. testmask.focus();
  45. $("#testmask").trigger("click");
  46. setTimeout(function () {
  47. $("#testmask").Type("1234.56");
  48. assert.equal(testmask.value, "$ 1,234.56", "Result " + testmask.value);
  49. done();
  50. }, 0);
  51. });
  52. qunit.test("currency - type 1234.56 + type 7 between 12", function (assert) {
  53. const done = assert.async(),
  54. $fixture = $("#qunit-fixture");
  55. $fixture.append('<input type="text" id="testmask" />');
  56. const testmask = document.getElementById("testmask");
  57. Inputmask("currency", {
  58. prefix: "$ "
  59. }).mask(testmask);
  60. testmask.focus();
  61. $("#testmask").trigger("click");
  62. setTimeout(function () {
  63. $("#testmask").Type("1234.56");
  64. $.caret(testmask, 3);
  65. $("#testmask").Type("7");
  66. assert.equal(testmask.value, "$ 17,234.56", "Result " + testmask.value);
  67. done();
  68. }, 0);
  69. });
  70. qunit.module("Numeric.Extensions - decimal");
  71. qunit.test("decimal - type 1234.56", function (assert) {
  72. const done = assert.async(),
  73. $fixture = $("#qunit-fixture");
  74. $fixture.append('<input type="text" id="testmask" />');
  75. const testmask = document.getElementById("testmask");
  76. Inputmask("decimal").mask(testmask);
  77. testmask.focus();
  78. $("#testmask").trigger("click");
  79. setTimeout(function () {
  80. $("#testmask").Type("1234.56");
  81. assert.equal(testmask.value, "1234.56", "Result " + testmask.value);
  82. done();
  83. }, 0);
  84. });
  85. qunit.test("decimal - type 1234.56 + type 7 between 12", function (assert) {
  86. const done = assert.async(),
  87. $fixture = $("#qunit-fixture");
  88. $fixture.append('<input type="text" id="testmask" />');
  89. const testmask = document.getElementById("testmask");
  90. Inputmask("decimal").mask(testmask);
  91. testmask.focus();
  92. $("#testmask").trigger("click");
  93. setTimeout(function () {
  94. $("#testmask").Type("1234.56");
  95. $.caret(testmask, 1);
  96. $("#testmask").Type("7");
  97. assert.equal(testmask.value, "17234.56", "Result " + testmask.value);
  98. done();
  99. }, 0);
  100. });
  101. qunit.module("Numeric.Extensions - integer");
  102. qunit.test("integer - type 1234", function (assert) {
  103. const done = assert.async(),
  104. $fixture = $("#qunit-fixture");
  105. $fixture.append('<input type="text" id="testmask" />');
  106. const testmask = document.getElementById("testmask");
  107. Inputmask("integer").mask(testmask);
  108. testmask.focus();
  109. $("#testmask").trigger("click");
  110. setTimeout(function () {
  111. $("#testmask").Type("1234");
  112. assert.equal(testmask.value, "1234", "Result " + testmask.value);
  113. done();
  114. }, 0);
  115. });
  116. qunit.test("integer - type 1234 + type 7 between 12", function (assert) {
  117. const done = assert.async(),
  118. $fixture = $("#qunit-fixture");
  119. $fixture.append('<input type="text" id="testmask" />');
  120. const testmask = document.getElementById("testmask");
  121. Inputmask("integer").mask(testmask);
  122. testmask.focus();
  123. $("#testmask").trigger("click");
  124. setTimeout(function () {
  125. $("#testmask").Type("1234");
  126. $.caret(testmask, 1);
  127. $("#testmask").Type("7");
  128. assert.equal(testmask.value, "17234", "Result " + testmask.value);
  129. done();
  130. }, 0);
  131. });
  132. qunit.module("Numeric.Extensions - percentage");
  133. qunit.test("percentage - type 25", function (assert) {
  134. const done = assert.async(),
  135. $fixture = $("#qunit-fixture");
  136. $fixture.append('<input type="text" id="testmask" />');
  137. const testmask = document.getElementById("testmask");
  138. Inputmask("percentage").mask(testmask);
  139. testmask.focus();
  140. $("#testmask").trigger("click");
  141. setTimeout(function () {
  142. $("#testmask").Type("25");
  143. assert.equal(testmask.value, "25 %", "Result " + testmask.value);
  144. done();
  145. }, 0);
  146. });
  147. qunit.test("percentage - type 5 + type 7 before 5", function (assert) {
  148. const done = assert.async(),
  149. $fixture = $("#qunit-fixture");
  150. $fixture.append('<input type="text" id="testmask" />');
  151. const testmask = document.getElementById("testmask");
  152. Inputmask("percentage").mask(testmask);
  153. testmask.focus();
  154. $("#testmask").trigger("click");
  155. setTimeout(function () {
  156. $("#testmask").Type("5");
  157. $.caret(testmask, 0);
  158. $("#testmask").Type("7");
  159. assert.equal(testmask.value, "75 %", "Result " + testmask.value);
  160. done();
  161. }, 0);
  162. });
  163. qunit.module("Numeric.Extensions - indianns");
  164. qunit.test("indianns - type 1234567.89", function (assert) {
  165. const done = assert.async(),
  166. $fixture = $("#qunit-fixture");
  167. $fixture.append('<input type="text" id="testmask" />');
  168. const testmask = document.getElementById("testmask");
  169. Inputmask("indianns").mask(testmask);
  170. testmask.focus();
  171. $("#testmask").trigger("click");
  172. setTimeout(function () {
  173. $("#testmask").Type("1234567.89");
  174. assert.equal(testmask.value, "12,34,567.89", "Result " + testmask.value);
  175. done();
  176. }, 0);
  177. });
  178. qunit.test(
  179. "indianns - type 1234567.89 + type 7 between 12",
  180. function (assert) {
  181. const done = assert.async(),
  182. $fixture = $("#qunit-fixture");
  183. $fixture.append('<input type="text" id="testmask" />');
  184. const testmask = document.getElementById("testmask");
  185. Inputmask("indianns").mask(testmask);
  186. testmask.focus();
  187. $("#testmask").trigger("click");
  188. setTimeout(function () {
  189. $("#testmask").Type("1234567.89");
  190. $.caret(testmask, 1);
  191. $("#testmask").Type("7");
  192. assert.equal(
  193. testmask.value,
  194. "1,72,34,567.89",
  195. "Result " + testmask.value
  196. );
  197. done();
  198. }, 0);
  199. }
  200. );
  201. qunit.module("Numeric.Extensions");
  202. qunit.test("€ Currency precision 2", function (assert) {
  203. const done = assert.async(),
  204. $fixture = $("#qunit-fixture");
  205. $fixture.append('<input type="text" id="testmask" />');
  206. const testmask = document.getElementById("testmask");
  207. Inputmask("numeric", {
  208. groupSeparator: ",",
  209. placeholder: "0",
  210. digits: 2,
  211. digitsOptional: false,
  212. prefix: "€ "
  213. }).mask(testmask);
  214. testmask.focus();
  215. $("#testmask").trigger("click");
  216. setTimeout(function () {
  217. $("#testmask").Type("1234");
  218. assert.equal(testmask.value, "€ 1,234.00", "Result " + testmask.value);
  219. done();
  220. }, 0);
  221. });
  222. qunit.test("integer type 124 correct to 1234", function (assert) {
  223. const $fixture = $("#qunit-fixture");
  224. $fixture.append('<input type="text" id="testmask" />');
  225. const testmask = document.getElementById("testmask");
  226. Inputmask("numeric", {
  227. groupSeparator: ","
  228. }).mask(testmask);
  229. testmask.focus();
  230. $("#testmask").Type("124");
  231. $.caret(testmask, 2);
  232. $("#testmask").Type("3");
  233. assert.equal(testmask.value, "1,234", "Result " + testmask.value);
  234. });
  235. qunit.test("numeric type 00000 - Webunity", function (assert) {
  236. const done = assert.async(),
  237. $fixture = $("#qunit-fixture");
  238. $fixture.append('<input type="text" id="testmask" />');
  239. const testmask = document.getElementById("testmask");
  240. Inputmask("numeric", {
  241. groupSeparator: ","
  242. }).mask(testmask);
  243. testmask.focus();
  244. setTimeout(function () {
  245. $("#testmask").Type("00000");
  246. $(testmask).trigger("blur");
  247. assert.equal(testmask.value, "0", "Result " + testmask.value);
  248. done();
  249. }, 0);
  250. });
  251. qunit.test("numeric -placeholder 0 type 00000 - Webunity", function (assert) {
  252. const done = assert.async(),
  253. $fixture = $("#qunit-fixture");
  254. $fixture.append('<input type="text" id="testmask" />');
  255. const testmask = document.getElementById("testmask");
  256. Inputmask("numeric", {
  257. groupSeparator: ",",
  258. placeholder: "0"
  259. }).mask(testmask);
  260. testmask.focus();
  261. setTimeout(function () {
  262. $("#testmask").Type("00000");
  263. assert.equal(testmask.value, "0", "Result " + testmask.value);
  264. done();
  265. }, 0);
  266. });
  267. qunit.test(
  268. "numeric placeholder 0 prefix € type 0.123 - Webunity",
  269. function (assert) {
  270. const done = assert.async(),
  271. $fixture = $("#qunit-fixture");
  272. $fixture.append('<input type="text" id="testmask" />');
  273. const testmask = document.getElementById("testmask");
  274. Inputmask("numeric", {
  275. groupSeparator: ",",
  276. placeholder: "0",
  277. prefix: "€ "
  278. }).mask(testmask);
  279. testmask.focus();
  280. setTimeout(function () {
  281. $("#testmask").Type("0.123");
  282. assert.equal(testmask.value, "€ 0.123", "Result " + testmask.value);
  283. done();
  284. }, 0);
  285. }
  286. );
  287. qunit.test(
  288. "numeric placeholder 0 prefix € type 0.123 - backspace - Webunity",
  289. function (assert) {
  290. const done = assert.async(),
  291. $fixture = $("#qunit-fixture");
  292. $fixture.append('<input type="text" id="testmask" />');
  293. const testmask = document.getElementById("testmask");
  294. Inputmask("numeric", {
  295. groupSeparator: ",",
  296. placeholder: "0",
  297. prefix: "€ "
  298. }).mask(testmask);
  299. testmask.focus();
  300. setTimeout(function () {
  301. $("#testmask").Type("0.123");
  302. $("#testmask").SendKey(keys.Backspace);
  303. assert.equal(testmask.value, "€ 0.12", "Result " + testmask.value);
  304. done();
  305. }, 0);
  306. }
  307. );
  308. qunit.test(
  309. "numeric placeholder 0 prefix € type 0.123 + add 1 in front - Webunity",
  310. function (assert) {
  311. const done = assert.async(),
  312. $fixture = $("#qunit-fixture");
  313. $fixture.append('<input type="text" id="testmask" />');
  314. const testmask = document.getElementById("testmask");
  315. Inputmask("numeric", {
  316. groupSeparator: ",",
  317. placeholder: "0",
  318. prefix: "€ "
  319. }).mask(testmask);
  320. testmask.focus();
  321. setTimeout(function () {
  322. $("#testmask").Type("0.123");
  323. $.caret(testmask, 2);
  324. $("#testmask").Type("1");
  325. assert.equal(testmask.value, "€ 10.123", "Result " + testmask.value);
  326. done();
  327. }, 0);
  328. }
  329. );
  330. qunit.test(
  331. "numeric placeholder 0 prefix € type 0.123 + add 123 in front - Webunity",
  332. function (assert) {
  333. const $fixture = $("#qunit-fixture");
  334. $fixture.append('<input type="text" id="testmask" />');
  335. const testmask = document.getElementById("testmask");
  336. Inputmask("numeric", {
  337. placeholder: "0",
  338. prefix: "€ "
  339. }).mask(testmask);
  340. testmask.focus();
  341. $("#testmask").Type("0.123");
  342. $.caret(testmask, 2);
  343. $("#testmask").Type("123");
  344. assert.equal(testmask.value, "€ 1230.123", "Result " + testmask.value);
  345. }
  346. );
  347. qunit.test(
  348. "numeric placeholder 0 prefix € type 0.123 + add 123 in front - Webunity",
  349. function (assert) {
  350. const $fixture = $("#qunit-fixture");
  351. $fixture.append('<input type="text" id="testmask" />');
  352. const testmask = document.getElementById("testmask");
  353. Inputmask("numeric", {
  354. groupSeparator: ",",
  355. placeholder: "0",
  356. prefix: "€ "
  357. }).mask(testmask);
  358. testmask.focus();
  359. $("#testmask").Type("0.123");
  360. $.caret(testmask, 2);
  361. $("#testmask").Type("123");
  362. assert.equal(testmask.value, "€ 1,230.123", "Result " + testmask.value);
  363. }
  364. );
  365. qunit.test(
  366. 'inputmask("numeric", { prefix: "€ " }") - input 12345.12',
  367. function (assert) {
  368. const $fixture = $("#qunit-fixture");
  369. $fixture.append('<input type="text" id="testmask" />');
  370. const testmask = document.getElementById("testmask");
  371. Inputmask("numeric", {
  372. prefix: "€ "
  373. }).mask(testmask);
  374. testmask.focus();
  375. $("#testmask").Type("12345.12");
  376. assert.equal(testmask.value, "€ 12345.12", "Result " + testmask.value);
  377. }
  378. );
  379. qunit.test(
  380. 'inputmask("decimal", { groupSeparator: "," }") - input 12345.123',
  381. function (assert) {
  382. const $fixture = $("#qunit-fixture");
  383. $fixture.append('<input type="text" id="testmask" />');
  384. const testmask = document.getElementById("testmask");
  385. Inputmask("decimal", {
  386. groupSeparator: ","
  387. }).mask(testmask);
  388. testmask.focus();
  389. $("#testmask").SendKey("1");
  390. $("#testmask").SendKey("2");
  391. $("#testmask").SendKey("3");
  392. $("#testmask").SendKey("4");
  393. $("#testmask").SendKey("5");
  394. $("#testmask").SendKey(".");
  395. $("#testmask").SendKey("1");
  396. $("#testmask").SendKey("2");
  397. $("#testmask").SendKey("3");
  398. assert.equal(testmask.value, "12,345.123", "Result " + testmask.value);
  399. }
  400. );
  401. qunit.test(
  402. 'inputmask("decimal", { groupSeparator: ","}") - input 12345.123 + remove .123',
  403. function (assert) {
  404. const done = assert.async(),
  405. $fixture = $("#qunit-fixture");
  406. $fixture.append('<input type="text" id="testmask" />');
  407. const testmask = document.getElementById("testmask");
  408. Inputmask("decimal", {
  409. groupSeparator: ","
  410. }).mask(testmask);
  411. testmask.focus();
  412. $("#testmask").Type("12345.123");
  413. $("#testmask").SendKey(keys.Backspace);
  414. $("#testmask").SendKey(keys.Backspace);
  415. $("#testmask").SendKey(keys.Backspace);
  416. $(testmask).trigger("blur");
  417. setTimeout(function () {
  418. assert.equal(testmask.value, "12,345", "Result " + testmask.value);
  419. done();
  420. }, 0);
  421. }
  422. );
  423. qunit.test(
  424. 'inputmask("decimal", { groupSeparator: "," }") - input 12345.123 + replace .123 => .789',
  425. function (assert) {
  426. const $fixture = $("#qunit-fixture");
  427. $fixture.append('<input type="text" id="testmask" />');
  428. const testmask = document.getElementById("testmask");
  429. Inputmask("decimal", {
  430. groupSeparator: ","
  431. }).mask(testmask);
  432. testmask.focus();
  433. $("#testmask").Type("12345.123");
  434. $("#testmask").SendKey(keys.ArrowLeft);
  435. $("#testmask").SendKey(keys.ArrowLeft);
  436. $("#testmask").SendKey(keys.ArrowLeft);
  437. $("#testmask").SendKey(keys.Delete);
  438. $("#testmask").SendKey(keys.Delete);
  439. $("#testmask").SendKey(keys.Delete);
  440. $("#testmask").Type("789");
  441. assert.equal(testmask.value, "12,345.789", "Result " + testmask.value);
  442. }
  443. );
  444. qunit.test(
  445. 'inputmask("decimal", { groupSeparator: "," }") - input 12345.123 + select replace .123 => .789',
  446. function (assert) {
  447. const $fixture = $("#qunit-fixture");
  448. $fixture.append('<input type="text" id="testmask" />');
  449. const testmask = document.getElementById("testmask");
  450. Inputmask("decimal", {
  451. groupSeparator: ","
  452. }).mask(testmask);
  453. testmask.focus();
  454. $("#testmask").Type("12345.123");
  455. // $("#testmask").trigger("click");
  456. $.caret(testmask, 6, 10);
  457. $("#testmask").Type(".789");
  458. assert.equal(testmask.value, "12,345.789", "Result " + testmask.value);
  459. }
  460. );
  461. qunit.test(
  462. 'inputmask("decimal", { groupSeparator: "," }") - input 12345.123 + remove .123',
  463. function (assert) {
  464. const $fixture = $("#qunit-fixture");
  465. $fixture.append('<input type="text" id="testmask" />');
  466. const testmask = document.getElementById("testmask");
  467. Inputmask("decimal", {
  468. groupSeparator: ","
  469. }).mask(testmask);
  470. testmask.focus();
  471. $("#testmask").Type("12345.123");
  472. // $("#testmask").trigger("click");
  473. $("#testmask").SendKey(keys.ArrowLeft);
  474. $("#testmask").SendKey(keys.ArrowLeft);
  475. $("#testmask").SendKey(keys.ArrowLeft);
  476. $("#testmask").SendKey(keys.ArrowLeft);
  477. $("#testmask").SendKey(keys.Delete);
  478. $("#testmask").SendKey(keys.Delete);
  479. $("#testmask").SendKey(keys.Delete);
  480. $("#testmask").SendKey(keys.Delete);
  481. $(testmask).trigger("blur");
  482. assert.equal(testmask.value, "12,345", "Result " + testmask.value);
  483. }
  484. );
  485. qunit.test(
  486. 'inputmask("decimal") - input 12345.123 + remove .123',
  487. function (assert) {
  488. const $fixture = $("#qunit-fixture");
  489. $fixture.append('<input type="text" id="testmask" />');
  490. const testmask = document.getElementById("testmask");
  491. Inputmask("decimal", {}).mask(testmask);
  492. testmask.focus();
  493. $("#testmask").Type("12345.123");
  494. // $("#testmask").trigger("click");
  495. $("#testmask").SendKey(keys.ArrowLeft);
  496. $("#testmask").SendKey(keys.ArrowLeft);
  497. $("#testmask").SendKey(keys.ArrowLeft);
  498. $("#testmask").SendKey(keys.ArrowLeft);
  499. $("#testmask").SendKey(keys.Delete);
  500. $("#testmask").SendKey(keys.Delete);
  501. $("#testmask").SendKey(keys.Delete);
  502. $("#testmask").SendKey(keys.Delete);
  503. $(testmask).trigger("blur");
  504. assert.equal(testmask.value, "12345", "Result " + testmask.value);
  505. }
  506. );
  507. qunit.test(
  508. 'inputmask("decimal") - input 12345.123 + replace .123 => .789',
  509. function (assert) {
  510. const $fixture = $("#qunit-fixture");
  511. $fixture.append('<input type="text" id="testmask" />');
  512. const testmask = document.getElementById("testmask");
  513. Inputmask("decimal", {}).mask(testmask);
  514. testmask.focus();
  515. $("#testmask").Type("12345.123");
  516. $("#testmask").SendKey(keys.ArrowLeft);
  517. $("#testmask").SendKey(keys.ArrowLeft);
  518. $("#testmask").SendKey(keys.ArrowLeft);
  519. $("#testmask").SendKey(keys.ArrowLeft);
  520. $("#testmask").SendKey(keys.Delete);
  521. $("#testmask").SendKey(keys.Delete);
  522. $("#testmask").SendKey(keys.Delete);
  523. $("#testmask").SendKey(keys.Delete);
  524. $("#testmask").Type(".789");
  525. assert.equal(testmask.value, "12345.789", "Result " + testmask.value);
  526. }
  527. );
  528. qunit.test('inputmask("decimal") - maxlength 10', function (assert) {
  529. const $fixture = $("#qunit-fixture");
  530. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  531. const testmask = document.getElementById("testmask");
  532. Inputmask("decimal").mask(testmask);
  533. testmask.focus();
  534. $("#testmask").Type("123456789012345");
  535. assert.equal(testmask.value, "1234567890", "Result " + testmask.value);
  536. });
  537. qunit.test('inputmask("decimal")', function (assert) {
  538. const $fixture = $("#qunit-fixture");
  539. $fixture.append('<input type="text" id="testmask" />');
  540. const testmask = document.getElementById("testmask");
  541. Inputmask("decimal").mask(testmask);
  542. testmask.focus();
  543. $("#testmask").Type("1234567890");
  544. $.caret(testmask, 0, 10);
  545. $("#testmask").Type("12345");
  546. assert.equal(testmask.value, "12345", "Result " + testmask.value);
  547. });
  548. qunit.test('inputmask("decimal") - value="1234567890"', function (assert) {
  549. const $fixture = $("#qunit-fixture");
  550. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  551. const testmask = document.getElementById("testmask");
  552. Inputmask("decimal").mask(testmask);
  553. testmask.focus();
  554. $.caret(testmask, 0, 10);
  555. $("#testmask").Type("12345");
  556. assert.equal(testmask.value, "12345", "Result " + testmask.value);
  557. });
  558. qunit.test('inputmask("decimal")', function (assert) {
  559. const $fixture = $("#qunit-fixture");
  560. $fixture.append('<input type="text" id="testmask" />');
  561. const testmask = document.getElementById("testmask");
  562. Inputmask("decimal").mask(testmask);
  563. testmask.focus();
  564. $("#testmask").Type("1234567890");
  565. $.caret(testmask, 3, 5);
  566. $("#testmask").SendKey("0");
  567. assert.equal(testmask.value, "123067890", "Result " + testmask.value);
  568. });
  569. qunit.test('inputmask("decimal") - value="1234567890"', function (assert) {
  570. const $fixture = $("#qunit-fixture");
  571. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  572. const testmask = document.getElementById("testmask");
  573. Inputmask("decimal").mask(testmask);
  574. testmask.focus();
  575. $.caret(testmask, 3, 5);
  576. $("#testmask").SendKey("0");
  577. assert.equal(testmask.value, "123067890", "Result " + testmask.value);
  578. });
  579. qunit.test(
  580. 'inputmask("decimal") - value="123.45" Replace last integer',
  581. function (assert) {
  582. const $fixture = $("#qunit-fixture");
  583. $fixture.append('<input type="text" id="testmask" />');
  584. const testmask = document.getElementById("testmask");
  585. Inputmask("decimal", {
  586. digits: 2
  587. }).mask(testmask);
  588. testmask.focus();
  589. $("#testmask").Type("123.45");
  590. $.caret(testmask, 2, 3);
  591. $("#testmask").SendKey("7");
  592. assert.equal(testmask.value, "127.45", "Result " + testmask.value);
  593. }
  594. );
  595. qunit.test(
  596. 'inputmask("decimal", { digits: 2 }) - value="123" - RomeroMsk',
  597. function (assert) {
  598. const $fixture = $("#qunit-fixture");
  599. $fixture.append('<input type="text" id="testmask" />');
  600. const testmask = document.getElementById("testmask");
  601. Inputmask("decimal", {
  602. digits: 2
  603. }).mask(testmask);
  604. testmask.focus();
  605. $("#testmask").Type("123");
  606. $.caret(testmask, 0, 3);
  607. $("#testmask").Type(",,...");
  608. $("#testmask").Type("45");
  609. assert.equal(testmask.value, "0.45", "Result " + testmask.value);
  610. }
  611. );
  612. qunit.test(
  613. "inputmask - Multiple inputs masked, Integer mask doesn't allow typing - #402 - albatrocity",
  614. function (assert) {
  615. const $fixture = $("#qunit-fixture");
  616. $fixture.append('<input type="text" id="testmask" />');
  617. const testmask = document.getElementById("testmask");
  618. $fixture.append('<input type="text" id="testmask2" />');
  619. const testmask2 = document.getElementById("testmask2");
  620. Inputmask("integer", {
  621. groupSeparator: ","
  622. }).mask(testmask);
  623. Inputmask("(999)-999-9999").mask(testmask2);
  624. testmask.focus();
  625. $("#testmask").Type("12345");
  626. assert.equal(testmask.value, "12,345", "Result " + testmask.value);
  627. $("#testmask2").remove();
  628. }
  629. );
  630. qunit.test(
  631. "decimal alias with groupseparator delete - YoussefTaghlabi",
  632. function (assert) {
  633. const $fixture = $("#qunit-fixture");
  634. $fixture.append('<input type="text" id="testmask" />');
  635. const testmask = document.getElementById("testmask");
  636. Inputmask("decimal", {
  637. radixPoint: ".",
  638. groupSeparator: ",",
  639. digits: 2,
  640. allowMinus: true
  641. }).mask(testmask);
  642. testmask.focus();
  643. $("#testmask").Type("1234567");
  644. $.caret(testmask, 0);
  645. $("#testmask").SendKey(keys.Delete);
  646. assert.equal(testmask.value, "234,567", "Result " + testmask.value);
  647. }
  648. );
  649. qunit.test(
  650. "decimal alias with groupseparator backspace - YoussefTaghlabi",
  651. function (assert) {
  652. const $fixture = $("#qunit-fixture");
  653. $fixture.append('<input type="text" id="testmask" />');
  654. const testmask = document.getElementById("testmask");
  655. Inputmask("decimal", {
  656. radixPoint: ".",
  657. groupSeparator: ",",
  658. digits: 2,
  659. allowMinus: true
  660. }).mask(testmask);
  661. testmask.focus();
  662. $("#testmask").Type("1234567");
  663. $.caret(testmask, 1);
  664. $("#testmask").SendKey(keys.Backspace);
  665. assert.equal(testmask.value, "234,567", "Result " + testmask.value);
  666. }
  667. );
  668. qunit.test(
  669. "decimal alias with minus - type -123456 - YoussefTaghlabi",
  670. function (assert) {
  671. const $fixture = $("#qunit-fixture");
  672. $fixture.append('<input type="text" id="testmask" />');
  673. const testmask = document.getElementById("testmask");
  674. Inputmask("decimal", {
  675. radixPoint: ".",
  676. groupSeparator: ",",
  677. digits: 2,
  678. allowMinus: true
  679. }).mask(testmask);
  680. testmask.focus();
  681. $("#testmask").Type("-123456");
  682. assert.equal(testmask.value, "-123,456", "Result " + testmask.value);
  683. }
  684. );
  685. qunit.test(
  686. "decimal alias with plus or minus & autogroup - type 123465 - - YoussefTaghlabi",
  687. function (assert) {
  688. const $fixture = $("#qunit-fixture");
  689. $fixture.append('<input type="text" id="testmask" />');
  690. const testmask = document.getElementById("testmask");
  691. Inputmask("decimal", {
  692. radixPoint: ".",
  693. groupSeparator: ",",
  694. digits: 2,
  695. allowMinus: true
  696. }).mask(testmask);
  697. testmask.focus();
  698. $("#testmask").Type("123456");
  699. $.caret(testmask, 0);
  700. $("#testmask").SendKey("-");
  701. assert.equal(testmask.value, "-123,456", "Result " + testmask.value);
  702. }
  703. );
  704. qunit.test("decimal alias with plus or minus & autogroup", function (assert) {
  705. const $fixture = $("#qunit-fixture");
  706. $fixture.append('<input type="text" id="testmask" />');
  707. const testmask = document.getElementById("testmask");
  708. Inputmask("decimal", {
  709. radixPoint: ".",
  710. groupSeparator: ",",
  711. digits: 2,
  712. allowMinus: true
  713. }).mask(testmask);
  714. testmask.focus();
  715. $("#testmask").Type("1234.56");
  716. assert.equal(testmask.value, "1,234.56", "Result " + testmask.value);
  717. });
  718. qunit.test(
  719. "decimal alias set value with val() - kochelmonster",
  720. function (assert) {
  721. const $fixture = $("#qunit-fixture");
  722. $fixture.append('<input type="text" id="testmask" />');
  723. const testmask = document.getElementById("testmask");
  724. Inputmask("decimal", {
  725. radixPoint: ",",
  726. groupSeparator: ".",
  727. digits: 2,
  728. autoGroup: true,
  729. suffix: " €"
  730. }).mask(testmask);
  731. $("#testmask").val("39.399.392,22 €");
  732. assert.equal(
  733. testmask.value,
  734. "39.399.392,22 €",
  735. "Result " + testmask.value
  736. );
  737. }
  738. );
  739. qunit.test(
  740. 'inputmask("decimal") - value="123.1" blur digitsoptional',
  741. function (assert) {
  742. const done = assert.async(),
  743. $fixture = $("#qunit-fixture");
  744. $fixture.append('<input type="text" id="testmask" />');
  745. const testmask = document.getElementById("testmask");
  746. Inputmask("decimal", {
  747. digits: 3
  748. }).mask(testmask);
  749. testmask.focus();
  750. $("#testmask").Type("123.1");
  751. $(testmask).trigger("blur");
  752. setTimeout(function () {
  753. assert.equal(testmask.value, "123.1", "Result " + testmask.value);
  754. done();
  755. }, 0);
  756. }
  757. );
  758. qunit.test('inputmask("decimal") - value="123.1" blur', function (assert) {
  759. const done = assert.async(),
  760. $fixture = $("#qunit-fixture");
  761. $fixture.append('<input type="text" id="testmask" />');
  762. const testmask = document.getElementById("testmask");
  763. Inputmask("decimal", {
  764. digits: 3,
  765. digitsOptional: false
  766. }).mask(testmask);
  767. testmask.focus();
  768. $("#testmask").val("123.1");
  769. $(testmask).trigger("blur");
  770. setTimeout(function () {
  771. assert.equal(testmask.value, "123.100", "Result " + testmask.value);
  772. done();
  773. }, 0);
  774. });
  775. qunit.test("currency alias - 200000 => replace 2 to 3", function (assert) {
  776. const done = assert.async(),
  777. $fixture = $("#qunit-fixture");
  778. $fixture.append('<input type="text" id="testmask" />');
  779. const testmask = document.getElementById("testmask");
  780. Inputmask("currency", {
  781. prefix: "$ "
  782. }).mask(testmask);
  783. testmask.focus();
  784. $("#testmask").trigger("click");
  785. setTimeout(function () {
  786. $("#testmask").Type("200000");
  787. $.caret(testmask, 2, 3);
  788. $("#testmask").Type("3");
  789. assert.equal(testmask.value, "$ 300,000.00", "Result " + testmask.value);
  790. done();
  791. }, 5);
  792. });
  793. qunit.test('inputmask("integer") - -0 - laxmikantG', function (assert) {
  794. const done = assert.async(),
  795. $fixture = $("#qunit-fixture");
  796. $fixture.append('<input type="text" id="testmask" />');
  797. const testmask = document.getElementById("testmask");
  798. Inputmask("integer", {
  799. placeholder: "0"
  800. }).mask(testmask);
  801. testmask.focus();
  802. $("#testmask").Type("-0");
  803. $(testmask).trigger("blur");
  804. setTimeout(function () {
  805. assert.equal(testmask.value, "0", "Result " + testmask.value);
  806. done();
  807. }, 0);
  808. });
  809. qunit.test('inputmask("integer") - 123- - laxmikantG', function (assert) {
  810. const $fixture = $("#qunit-fixture");
  811. $fixture.append('<input type="text" id="testmask" />');
  812. const testmask = document.getElementById("testmask");
  813. Inputmask("integer", {
  814. placeholder: "0"
  815. }).mask(testmask);
  816. testmask.focus();
  817. $("#testmask").Type("123-");
  818. assert.equal(testmask.value, "-123", "Result " + testmask.value);
  819. });
  820. qunit.test(
  821. 'inputmask("decimal") - val("-5000,77"); - ManRueda',
  822. function (assert) {
  823. const $fixture = $("#qunit-fixture");
  824. $fixture.append('<input type="text" id="testmask" />');
  825. const testmask = document.getElementById("testmask");
  826. Inputmask("decimal", {
  827. groupSeparator: ".",
  828. digits: 2,
  829. radixPoint: ","
  830. }).mask(testmask);
  831. $("#testmask").val("-5000,77");
  832. assert.equal(testmask.value, "-5.000,77", "Result " + testmask.value);
  833. }
  834. );
  835. qunit.test('inputmask("decimal") - -0 - ManRueda', function (assert) {
  836. const done = assert.async(),
  837. $fixture = $("#qunit-fixture");
  838. $fixture.append('<input type="text" id="testmask" />');
  839. const testmask = document.getElementById("testmask");
  840. Inputmask("decimal", {
  841. groupSeparator: ".",
  842. digits: 2,
  843. radixPoint: ","
  844. }).mask(testmask);
  845. $("#testmask").val("-0");
  846. $(testmask).trigger("blur");
  847. setTimeout(function () {
  848. assert.equal(testmask.value, "0", "Result " + testmask.value);
  849. done();
  850. }, 0);
  851. });
  852. qunit.test('inputmask("integer") - -5.000,77 - DrSammyD', function (assert) {
  853. const $fixture = $("#qunit-fixture");
  854. $fixture.append('<input type="text" id="testmask" />');
  855. const testmask = document.getElementById("testmask");
  856. Inputmask("integer", {
  857. placeholder: "0"
  858. }).mask(testmask);
  859. testmask.value = -5000.77;
  860. $(testmask).trigger("blur");
  861. assert.equal(testmask.value, "-5001", "Result " + testmask.value);
  862. });
  863. qunit.test('inputmask("integer") - 5.000,77 - DrSammyD', function (assert) {
  864. const $fixture = $("#qunit-fixture");
  865. $fixture.append('<input type="text" id="testmask" />');
  866. const testmask = document.getElementById("testmask");
  867. Inputmask("integer", {
  868. placeholder: "0",
  869. radixPoint: ","
  870. }).mask(testmask);
  871. $("#testmask").val("5.000,77");
  872. $(testmask).trigger("blur");
  873. assert.equal(testmask.value, "5001", "Result " + testmask.value);
  874. });
  875. qunit.test(
  876. 'inputmask("decimal placeholder :"" digitsoptional: false) - 123 - loostro',
  877. function (assert) {
  878. const done = assert.async(),
  879. $fixture = $("#qunit-fixture");
  880. $fixture.append('<input type="text" id="testmask" value="0,00" />');
  881. const testmask = document.getElementById("testmask");
  882. Inputmask("decimal", {
  883. radixPoint: ",",
  884. digits: 2,
  885. digitsOptional: false,
  886. groupSeparator: " ",
  887. allowMinus: false
  888. }).mask(testmask);
  889. testmask.focus();
  890. $("#testmask").trigger("click");
  891. $.caret(testmask, 0);
  892. setTimeout(function () {
  893. $("#testmask").Type("123");
  894. assert.equal(testmask.value, "123,00", "Result " + testmask.value);
  895. done();
  896. }, 5);
  897. }
  898. );
  899. qunit.test(
  900. 'inputmask("decimal placeholder :"0" digitsoptional: false) - .12 - YodaJM',
  901. function (assert) {
  902. const done = assert.async(),
  903. $fixture = $("#qunit-fixture");
  904. $fixture.append('<input type="text" id="testmask" />');
  905. const testmask = document.getElementById("testmask");
  906. Inputmask("decimal", {
  907. digits: 2,
  908. placeholder: "0",
  909. digitsOptional: false
  910. }).mask(testmask);
  911. testmask.focus();
  912. $.caret(testmask, 0, 4);
  913. setTimeout(function () {
  914. $("#testmask").Type(".12");
  915. assert.equal(testmask.value, "0.12", "Result " + testmask.value);
  916. done();
  917. }, 0);
  918. }
  919. );
  920. qunit.test('inputmask("decimal") - 123456 78 - babupca', function (assert) {
  921. const done = assert.async(),
  922. $fixture = $("#qunit-fixture");
  923. $fixture.append('<input type="text" id="testmask" />');
  924. const testmask = document.getElementById("testmask");
  925. Inputmask({
  926. alias: "decimal",
  927. digits: 3,
  928. allowMinus: false,
  929. digitsOptional: false,
  930. placeholder: "0"
  931. }).mask(testmask);
  932. testmask.focus();
  933. $("#testmask").trigger("click");
  934. setTimeout(function () {
  935. $("#testmask").Type("123456");
  936. $.caret(testmask, 8);
  937. $("#testmask").Type("78");
  938. $.caret(testmask, 5);
  939. $("#testmask").SendKey(keys.Backspace);
  940. assert.equal(testmask.value, "12346.078", "Result " + testmask.value);
  941. done();
  942. }, 0);
  943. });
  944. qunit.test("currency alias - 1234 => del 1", function (assert) {
  945. const done = assert.async(),
  946. $fixture = $("#qunit-fixture");
  947. $fixture.append('<input type="text" id="testmask" />');
  948. const testmask = document.getElementById("testmask");
  949. Inputmask("currency", {
  950. prefix: "$ "
  951. }).mask(testmask);
  952. testmask.focus();
  953. $("#testmask").trigger("click");
  954. setTimeout(function () {
  955. $("#testmask").Type("1234");
  956. $.caret(testmask, 3);
  957. $("#testmask").SendKey(keys.Backspace);
  958. assert.equal(testmask.value, "$ 234.00", "Result " + testmask.value);
  959. done();
  960. }, 5);
  961. });
  962. qunit.test(
  963. "currency alias - 0.02 => type 1 in integer part",
  964. function (assert) {
  965. const done = assert.async(),
  966. $fixture = $("#qunit-fixture");
  967. $fixture.append('<input type="text" id="testmask" />');
  968. const testmask = document.getElementById("testmask");
  969. Inputmask("currency", {
  970. prefix: "$ "
  971. }).mask(testmask);
  972. testmask.focus();
  973. $("#testmask").trigger("click");
  974. setTimeout(function () {
  975. $("#testmask").Type("0.02");
  976. $.caret(testmask, 3);
  977. $("#testmask").SendKey("1");
  978. assert.equal(testmask.value, "$ 1.02", "Result " + testmask.value);
  979. done();
  980. }, 5);
  981. }
  982. );
  983. qunit.test(
  984. "currency alias - 0.02 => position before 0 type 1 in integer part",
  985. function (assert) {
  986. const done = assert.async(),
  987. $fixture = $("#qunit-fixture");
  988. $fixture.append('<input type="text" id="testmask" />');
  989. const testmask = document.getElementById("testmask");
  990. Inputmask("currency", {
  991. prefix: "$ "
  992. }).mask(testmask);
  993. testmask.focus();
  994. $("#testmask").trigger("click");
  995. setTimeout(function () {
  996. $("#testmask").Type("0.02");
  997. $.caret(testmask, 2);
  998. $("#testmask").SendKey("1");
  999. assert.equal(testmask.value, "$ 10.02", "Result " + testmask.value);
  1000. done();
  1001. }, 5);
  1002. }
  1003. );
  1004. qunit.test(
  1005. "currency alias - 1.23 => del 1 in integer part",
  1006. function (assert) {
  1007. const done = assert.async(),
  1008. $fixture = $("#qunit-fixture");
  1009. $fixture.append('<input type="text" id="testmask" />');
  1010. const testmask = document.getElementById("testmask");
  1011. Inputmask("currency", {
  1012. prefix: "$ "
  1013. }).mask(testmask);
  1014. testmask.focus();
  1015. $("#testmask").trigger("click");
  1016. setTimeout(function () {
  1017. $("#testmask").Type("1.23");
  1018. $.caret(testmask, 3);
  1019. $("#testmask").SendKey(keys.Backspace);
  1020. assert.equal(testmask.value, "$ 0.23", "Result " + testmask.value);
  1021. done();
  1022. }, 5);
  1023. }
  1024. );
  1025. qunit.test("currency alias - 1234.56 => delete all", function (assert) {
  1026. const done = assert.async(),
  1027. $fixture = $("#qunit-fixture");
  1028. $fixture.append('<input type="text" id="testmask" />');
  1029. const testmask = document.getElementById("testmask");
  1030. Inputmask("currency", {
  1031. prefix: "$ "
  1032. }).mask(testmask);
  1033. testmask.focus();
  1034. $("#testmask").trigger("click");
  1035. setTimeout(function () {
  1036. $("#testmask").Type("1234.56");
  1037. $.caret(testmask, 0, 10);
  1038. $("#testmask").SendKey(keys.Backspace);
  1039. assert.equal(
  1040. testmask.inputmask._valueGet(true),
  1041. "$ 0.00",
  1042. "Result " + testmask.inputmask._valueGet(true)
  1043. );
  1044. done();
  1045. }, 5);
  1046. });
  1047. qunit.test(
  1048. "numeric prefix='$' - paste 1234.56 - baileyjames9 & TheAndyBob",
  1049. function (assert) {
  1050. const done = assert.async(),
  1051. $fixture = $("#qunit-fixture");
  1052. $fixture.append('<input type="text" id="testmask" />');
  1053. const testmask = document.getElementById("testmask");
  1054. Inputmask("numeric", {
  1055. radixPoint: ".",
  1056. groupSeparator: ",",
  1057. digits: 2,
  1058. autoGroup: true,
  1059. prefix: "$" // No Space, this will truncate the first character
  1060. }).mask(testmask);
  1061. testmask.focus();
  1062. $("#testmask").trigger("click");
  1063. setTimeout(function () {
  1064. $("#testmask").paste("1234.56");
  1065. assert.equal(testmask.value, "$1,234.56", "Result " + testmask.value);
  1066. done();
  1067. }, 5);
  1068. }
  1069. );
  1070. qunit.test(
  1071. "currency alias - 1234.56 => select integer press 1 - babupca",
  1072. function (assert) {
  1073. const done = assert.async(),
  1074. $fixture = $("#qunit-fixture");
  1075. $fixture.append('<input type="text" id="testmask" />');
  1076. const testmask = document.getElementById("testmask");
  1077. Inputmask("currency", {
  1078. prefix: "$ "
  1079. }).mask(testmask);
  1080. testmask.focus();
  1081. $("#testmask").trigger("click");
  1082. setTimeout(function () {
  1083. $("#testmask").Type("1234.56");
  1084. $.caret(testmask, 0, 7);
  1085. $("#testmask").SendKey("1");
  1086. assert.equal(testmask.value, "$ 1.56", "Result " + testmask.value);
  1087. done();
  1088. }, 5);
  1089. }
  1090. );
  1091. qunit.test(
  1092. "currency alias - 123.56 => select integer press 1 - babupca",
  1093. function (assert) {
  1094. const done = assert.async(),
  1095. $fixture = $("#qunit-fixture");
  1096. $fixture.append('<input type="text" id="testmask" />');
  1097. const testmask = document.getElementById("testmask");
  1098. Inputmask("currency", {
  1099. prefix: "$ "
  1100. }).mask(testmask);
  1101. testmask.focus();
  1102. $("#testmask").trigger("click");
  1103. setTimeout(function () {
  1104. $("#testmask").Type("123.56");
  1105. $.caret(testmask, 0, 5);
  1106. $("#testmask").SendKey("1");
  1107. assert.equal(testmask.value, "$ 1.56", "Result " + testmask.value);
  1108. done();
  1109. }, 5);
  1110. }
  1111. );
  1112. qunit.test(
  1113. "currency alias - 123.56 => select integer press 1 - babupca",
  1114. function (assert) {
  1115. const done = assert.async(),
  1116. $fixture = $("#qunit-fixture");
  1117. $fixture.append('<input type="text" id="testmask" />');
  1118. const testmask = document.getElementById("testmask");
  1119. Inputmask("currency", {
  1120. prefix: "$"
  1121. }).mask(testmask);
  1122. testmask.focus();
  1123. $("#testmask").trigger("click");
  1124. setTimeout(function () {
  1125. $("#testmask").Type("123.56");
  1126. $.caret(testmask, 0, 4);
  1127. $("#testmask").SendKey("1");
  1128. assert.equal(testmask.value, "$1.56", "Result " + testmask.value);
  1129. done();
  1130. }, 5);
  1131. }
  1132. );
  1133. qunit.test("currency alias - min 1000", function (assert) {
  1134. const done = assert.async(),
  1135. $fixture = $("#qunit-fixture");
  1136. $fixture.append('<input type="text" id="testmask" />');
  1137. const testmask = document.getElementById("testmask");
  1138. Inputmask("currency", {
  1139. min: 1000,
  1140. prefix: "$ "
  1141. }).mask(testmask);
  1142. testmask.focus();
  1143. setTimeout(function () {
  1144. $("#testmask").trigger("blur");
  1145. setTimeout(function () {
  1146. assert.equal(testmask.value, "$ 1,000.00", "Result " + testmask.value);
  1147. done();
  1148. }, 0);
  1149. }, 0);
  1150. });
  1151. qunit.test("currency alias - max 1000 - type 1234", function (assert) {
  1152. const done = assert.async(),
  1153. $fixture = $("#qunit-fixture");
  1154. $fixture.append('<input type="text" id="testmask" />');
  1155. const testmask = document.getElementById("testmask");
  1156. Inputmask("currency", {
  1157. max: 1000,
  1158. prefix: "$ "
  1159. }).mask(testmask);
  1160. testmask.focus();
  1161. $("#testmask").trigger("click");
  1162. setTimeout(function () {
  1163. $("#testmask").Type("1234");
  1164. $("#testmask").trigger("blur");
  1165. setTimeout(function () {
  1166. assert.equal(testmask.value, "$ 123.00", "Result " + testmask.value);
  1167. done();
  1168. }, 0);
  1169. }, 5);
  1170. });
  1171. qunit.test(
  1172. "currency alias - type 1010 delete first 1 - FilipeZhou",
  1173. function (assert) {
  1174. const done = assert.async(),
  1175. $fixture = $("#qunit-fixture");
  1176. $fixture.append('<input type="text" id="testmask" />');
  1177. const testmask = document.getElementById("testmask");
  1178. Inputmask("currency", {
  1179. prefix: "$ "
  1180. }).mask(testmask);
  1181. testmask.focus();
  1182. $("#testmask").trigger("click");
  1183. setTimeout(function () {
  1184. $("#testmask").Type("1010");
  1185. $.caret(testmask, 3);
  1186. $("#testmask").SendKey(keys.Backspace);
  1187. assert.equal(testmask.value, "$ 10.00", "Result " + testmask.value);
  1188. done();
  1189. }, 0);
  1190. }
  1191. );
  1192. qunit.test(
  1193. "currency alias - type 1010 delete middle 1 - FilipeZhou",
  1194. function (assert) {
  1195. const done = assert.async(),
  1196. $fixture = $("#qunit-fixture");
  1197. $fixture.append('<input type="text" id="testmask" />');
  1198. const testmask = document.getElementById("testmask");
  1199. Inputmask("currency", {
  1200. prefix: "$ "
  1201. }).mask(testmask);
  1202. testmask.focus();
  1203. $("#testmask").trigger("click");
  1204. setTimeout(function () {
  1205. $("#testmask").Type("1010");
  1206. $.caret(testmask, 6);
  1207. $("#testmask").SendKey(keys.Backspace);
  1208. assert.equal(testmask.value, "$ 100.00", "Result " + testmask.value);
  1209. done();
  1210. }, 0);
  1211. }
  1212. );
  1213. qunit.test("currency alias - type -1234 delete -", function (assert) {
  1214. const done = assert.async(),
  1215. $fixture = $("#qunit-fixture");
  1216. $fixture.append('<input type="text" id="testmask" />');
  1217. const testmask = document.getElementById("testmask");
  1218. Inputmask("currency", {
  1219. prefix: "$ "
  1220. }).mask(testmask);
  1221. testmask.focus();
  1222. $("#testmask").trigger("click");
  1223. setTimeout(function () {
  1224. $("#testmask").Type("-1234");
  1225. $.caret(testmask, 0);
  1226. $("#testmask").SendKey(keys.Delete);
  1227. assert.equal(testmask.value, "$ 1,234.00", "Result " + testmask.value);
  1228. done();
  1229. }, 0);
  1230. });
  1231. qunit.test(
  1232. "decimal alias - type 12345.12 add 6 in front - freeze - DatXN",
  1233. function (assert) {
  1234. const $fixture = $("#qunit-fixture");
  1235. $fixture.append('<input type="text" id="testmask" maxlength=\'8\' />');
  1236. const testmask = document.getElementById("testmask");
  1237. Inputmask("decimal", {
  1238. digits: 2,
  1239. allowMinus: false
  1240. }).mask(testmask);
  1241. testmask.focus();
  1242. $("#testmask").trigger("click");
  1243. $("#testmask").Type("12345.12");
  1244. $.caret(testmask, 0);
  1245. $("#testmask").SendKey("6");
  1246. assert.equal(testmask.value, "12345.12", "Result " + testmask.value);
  1247. }
  1248. );
  1249. qunit.test(
  1250. "decimal alias - type 123456789 - add , before 8 - jpontet",
  1251. function (assert) {
  1252. const $fixture = $("#qunit-fixture");
  1253. $fixture.append('<input type="text" id="testmask" />');
  1254. const testmask = document.getElementById("testmask");
  1255. Inputmask("decimal", {
  1256. allowMinus: true,
  1257. digits: 2,
  1258. radixPoint: ",",
  1259. groupSeparator: " ",
  1260. rightAlign: false
  1261. }).mask(testmask);
  1262. testmask.focus();
  1263. $("#testmask").trigger("click");
  1264. $("#testmask").Type("123456789");
  1265. $.caret(testmask, 9);
  1266. $("#testmask").SendKey(",");
  1267. assert.equal(testmask.value, "1 234 567,89", "Result " + testmask.value);
  1268. }
  1269. );
  1270. qunit.test(
  1271. "decimal alias - type 123456789 - add , before 8 - backspace - jpontet",
  1272. function (assert) {
  1273. const $fixture = $("#qunit-fixture");
  1274. $fixture.append('<input type="text" id="testmask" />');
  1275. const testmask = document.getElementById("testmask");
  1276. Inputmask("decimal", {
  1277. allowMinus: true,
  1278. digits: 2,
  1279. radixPoint: ",",
  1280. groupSeparator: " ",
  1281. rightAlign: false
  1282. }).mask(testmask);
  1283. testmask.focus();
  1284. $("#testmask").trigger("click");
  1285. $("#testmask").Type("123456789");
  1286. $.caret(testmask, 9);
  1287. $("#testmask").SendKey(",");
  1288. $("#testmask").SendKey(keys.Backspace);
  1289. assert.equal(testmask.value, "123 456 789", "Result " + testmask.value);
  1290. }
  1291. );
  1292. qunit.test(
  1293. "decimal alias - type 1234567890 - add , before 9 - jpontet",
  1294. function (assert) {
  1295. const $fixture = $("#qunit-fixture");
  1296. $fixture.append('<input type="text" id="testmask" />');
  1297. const testmask = document.getElementById("testmask");
  1298. Inputmask("decimal", {
  1299. allowMinus: true,
  1300. digits: 2,
  1301. radixPoint: ",",
  1302. groupSeparator: " ",
  1303. rightAlign: false
  1304. }).mask(testmask);
  1305. testmask.focus();
  1306. $("#testmask").trigger("click");
  1307. $("#testmask").Type("1234567890");
  1308. $.caret(testmask, 11);
  1309. $("#testmask").SendKey(",");
  1310. assert.equal(testmask.value, "12 345 678,90", "Result " + testmask.value);
  1311. }
  1312. );
  1313. qunit.test(
  1314. "decimal alias - type 1234567890 - add , before 9 - backspace - jpontet",
  1315. function (assert) {
  1316. const $fixture = $("#qunit-fixture");
  1317. $fixture.append('<input type="text" id="testmask" />');
  1318. const testmask = document.getElementById("testmask");
  1319. Inputmask("decimal", {
  1320. allowMinus: true,
  1321. digits: 2,
  1322. radixPoint: ",",
  1323. groupSeparator: " ",
  1324. rightAlign: false
  1325. }).mask(testmask);
  1326. testmask.focus();
  1327. $("#testmask").trigger("click");
  1328. $("#testmask").Type("1234567890");
  1329. $.caret(testmask, 11);
  1330. $("#testmask").SendKey(",");
  1331. $("#testmask").SendKey(keys.Backspace);
  1332. assert.equal(testmask.value, "1 234 567 890", "Result " + testmask.value);
  1333. }
  1334. );
  1335. qunit.test(
  1336. 'numeric alias - value="-1234" minvalue = 1000',
  1337. function (assert) {
  1338. const done = assert.async(),
  1339. $fixture = $("#qunit-fixture");
  1340. $fixture.append('<input type="text" id="testmask" value="-1234" />');
  1341. const testmask = document.getElementById("testmask");
  1342. testmask.focus();
  1343. Inputmask("numeric", {
  1344. allowMinus: true,
  1345. min: 1000,
  1346. max: 3000
  1347. }).mask(testmask);
  1348. testmask.blur();
  1349. setTimeout(function () {
  1350. assert.equal(testmask.value, "1000", "Result " + testmask.value);
  1351. done();
  1352. }, 100);
  1353. }
  1354. );
  1355. qunit.test(
  1356. 'numeric alias - value="-1234" minvalue = -1000',
  1357. function (assert) {
  1358. const $fixture = $("#qunit-fixture");
  1359. $fixture.append('<input type="text" id="testmask" value="-1234" />');
  1360. const testmask = document.getElementById("testmask");
  1361. Inputmask("numeric", {
  1362. allowMinus: true,
  1363. min: -1000,
  1364. max: 3000
  1365. }).mask(testmask);
  1366. testmask.blur();
  1367. assert.equal(testmask.value, "-1000", "Result " + testmask.value);
  1368. }
  1369. );
  1370. qunit.test('numeric alias - value="1000" minvalue = 1000', function (assert) {
  1371. const $fixture = $("#qunit-fixture");
  1372. $fixture.append('<input type="text" id="testmask" value="1000" />');
  1373. const testmask = document.getElementById("testmask");
  1374. Inputmask("numeric", {
  1375. allowMinus: true,
  1376. min: 1000,
  1377. max: 3000
  1378. }).mask(testmask);
  1379. assert.equal(testmask.value, "1000", "Result " + testmask.value);
  1380. });
  1381. qunit.test(
  1382. 'numeric alias - value="-1000" minvalue = -1000',
  1383. function (assert) {
  1384. const $fixture = $("#qunit-fixture");
  1385. $fixture.append('<input type="text" id="testmask" value="-1000" />');
  1386. const testmask = document.getElementById("testmask");
  1387. Inputmask("numeric", {
  1388. allowMinus: true,
  1389. min: -1000,
  1390. max: 3000
  1391. }).mask(testmask);
  1392. assert.equal(testmask.value, "-1000", "Result " + testmask.value);
  1393. }
  1394. );
  1395. qunit.test(
  1396. "decimal alias - overwrite decimal value - shahvaiz",
  1397. function (assert) {
  1398. const $fixture = $("#qunit-fixture");
  1399. $fixture.append('<input type="text" id="testmask" />');
  1400. const testmask = document.getElementById("testmask");
  1401. Inputmask("decimal", {
  1402. groupSeparator: ",",
  1403. suffix: "%"
  1404. }).mask(testmask);
  1405. $("#testmask").Type("123.123");
  1406. $.caret(testmask, 4, 7);
  1407. $("#testmask").Type("4");
  1408. assert.equal(testmask.value, "123.4%", "Result " + testmask.value);
  1409. }
  1410. );
  1411. qunit.test('numeric alias - placeholder: "_" - lucafik', function (assert) {
  1412. const done = assert.async(),
  1413. $fixture = $("#qunit-fixture");
  1414. $fixture.append('<input type="text" id="testmask" />');
  1415. const testmask = document.getElementById("testmask");
  1416. Inputmask("numeric", {
  1417. digits: 2,
  1418. placeholder: "_",
  1419. digitsOptional: false
  1420. }).mask(testmask);
  1421. testmask.focus();
  1422. $("#testmask").trigger("click");
  1423. setTimeout(function () {
  1424. $("#testmask").Type("12");
  1425. assert.equal(testmask.value, "12.__", "Result " + testmask.value);
  1426. done();
  1427. }, 0);
  1428. });
  1429. qunit.test(
  1430. "numeric alias - type 123.123 - delete all - ivodopyanov",
  1431. function (assert) {
  1432. const done = assert.async(),
  1433. $fixture = $("#qunit-fixture");
  1434. $fixture.append('<input type="text" id="testmask" />');
  1435. const testmask = document.getElementById("testmask");
  1436. Inputmask("numeric").mask(testmask);
  1437. $("#testmask").trigger("click");
  1438. setTimeout(function () {
  1439. $("#testmask").Type("123.123");
  1440. $.caret(testmask, 0, testmask.value.length);
  1441. $("#testmask").SendKey(keys.Delete);
  1442. assert.equal(testmask.value, "", "Result " + testmask.value);
  1443. done();
  1444. }, 0);
  1445. }
  1446. );
  1447. qunit.test("currency alias - 123 - isvalid - ivodopyanov", function (assert) {
  1448. const done = assert.async(),
  1449. $fixture = $("#qunit-fixture");
  1450. $fixture.append('<input type="text" id="testmask" />');
  1451. const testmask = document.getElementById("testmask");
  1452. Inputmask("currency", {
  1453. prefix: "$ "
  1454. }).mask(testmask);
  1455. $("#testmask").trigger("click");
  1456. setTimeout(function () {
  1457. $("#testmask").Type("123");
  1458. const isValid = Inputmask("currency", {
  1459. prefix: "$ "
  1460. }).isValid(testmask.value);
  1461. assert.equal(
  1462. isValid,
  1463. true,
  1464. "Result " + $(testmask).val() + " : " + isValid
  1465. );
  1466. done();
  1467. }, 0);
  1468. });
  1469. qunit.test(
  1470. "currency alias - $ 99,999,999.00 - isvalid - ivodopyanov",
  1471. function (assert) {
  1472. const $fixture = $("#qunit-fixture");
  1473. $fixture.append('<input type="text" id="testmask" />');
  1474. const testmask = document.getElementById("testmask");
  1475. Inputmask("currency", {
  1476. prefix: "$ "
  1477. }).mask(testmask);
  1478. $("#testmask").Type("$ 99,999,999.00");
  1479. const isValid = Inputmask("currency", {
  1480. prefix: "$ "
  1481. }).isValid(testmask.value);
  1482. assert.equal(
  1483. isValid,
  1484. true,
  1485. "Result " + $(testmask).val() + " : " + isValid
  1486. );
  1487. }
  1488. );
  1489. qunit.test("numeric alias - digits 2 type 0.12 - gharlan", function (assert) {
  1490. const $fixture = $("#qunit-fixture");
  1491. $fixture.append('<input type="text" id="testmask" value="0.12" />');
  1492. const testmask = document.getElementById("testmask");
  1493. Inputmask("numeric", {
  1494. digits: 2
  1495. }).mask(testmask);
  1496. $.caret(testmask, 0, 1);
  1497. $("#testmask").Type("1");
  1498. assert.equal(testmask.value, "1.12", "Result " + testmask.value);
  1499. });
  1500. qunit.test(
  1501. "numeric alias - digits 2 select 0 type 1 - gharlan",
  1502. function (assert) {
  1503. const $fixture = $("#qunit-fixture");
  1504. $fixture.append('<input type="text" id="testmask" value="0.00" />');
  1505. const testmask = document.getElementById("testmask");
  1506. Inputmask("numeric", {
  1507. digits: 2
  1508. }).mask(testmask);
  1509. $.caret(testmask, 0, 1);
  1510. $("#testmask").Type("1");
  1511. assert.equal(testmask.value, "1.00", "Result " + testmask.value);
  1512. }
  1513. );
  1514. qunit.test(
  1515. "decimal alias - value 20,00 select 2 type 5 - schmulschubiak",
  1516. function (assert) {
  1517. const $fixture = $("#qunit-fixture");
  1518. $fixture.append('<input type="text" id="testmask" value="20,00" />');
  1519. const testmask = document.getElementById("testmask");
  1520. Inputmask("decimal", {
  1521. radixPoint: ",",
  1522. groupSeparator: " ",
  1523. allowMinus: false,
  1524. digits: 2,
  1525. rightAlign: false
  1526. }).mask(testmask);
  1527. $.caret(testmask, 0, 1);
  1528. $("#testmask").Type("5");
  1529. assert.equal(testmask.value, "50,00", "Result " + testmask.value);
  1530. }
  1531. );
  1532. qunit.test(
  1533. "currency numericInput true - type 10020 - jaisonerick",
  1534. function (assert) {
  1535. const done = assert.async(),
  1536. $fixture = $("#qunit-fixture");
  1537. $fixture.append('<input type="text" id="testmask" />');
  1538. const testmask = document.getElementById("testmask");
  1539. Inputmask("currency", {
  1540. allowMinus: false,
  1541. rightAlign: false,
  1542. groupSeparator: ".",
  1543. radixPoint: ",",
  1544. numericInput: true,
  1545. digits: 2,
  1546. prefix: "R$ ",
  1547. unmaskAsNumber: false
  1548. }).mask(testmask);
  1549. testmask.focus();
  1550. $("#testmask").trigger("click");
  1551. setTimeout(function () {
  1552. $("#testmask").Type("10020");
  1553. assert.equal(
  1554. $(testmask).val(),
  1555. "R$ 100,20",
  1556. "Result " + $(testmask).val()
  1557. );
  1558. done();
  1559. }, 0);
  1560. }
  1561. );
  1562. qunit.test("numeric - type 978-3498064365 - andreasba", function (assert) {
  1563. const $fixture = $("#qunit-fixture");
  1564. $fixture.append('<input type="text" id="testmask" />');
  1565. const testmask = document.getElementById("testmask");
  1566. Inputmask("numeric").mask(testmask);
  1567. $("#testmask").Type("978-3498064365");
  1568. assert.equal(
  1569. $(testmask).val(),
  1570. "-9783498064365",
  1571. "Result " + $(testmask).val()
  1572. );
  1573. });
  1574. qunit.test("numeric - type 978-3498064365 - andreasba", function (assert) {
  1575. const $fixture = $("#qunit-fixture");
  1576. $fixture.append('<input type="text" id="testmask" />');
  1577. const testmask = document.getElementById("testmask");
  1578. Inputmask("numeric", {
  1579. allowMinus: false
  1580. }).mask(testmask);
  1581. testmask.focus();
  1582. $("#testmask").Type("978-3498064365");
  1583. assert.equal(
  1584. $(testmask).val(),
  1585. "9783498064365",
  1586. "Result " + $(testmask).val()
  1587. );
  1588. });
  1589. qunit.test(
  1590. "currency alias - isvalid - ivodopyanov - htmlmasta",
  1591. function (assert) {
  1592. const done = assert.async(),
  1593. $fixture = $("#qunit-fixture");
  1594. $fixture.append('<input type="text" id="testmask" />');
  1595. const testmask = document.getElementById("testmask");
  1596. Inputmask("currency", {
  1597. prefix: "$ "
  1598. }).mask(testmask);
  1599. testmask.focus();
  1600. $("#testmask").trigger("click");
  1601. setTimeout(function () {
  1602. let i, isValid;
  1603. for (i = 0; i < 10; i++) {
  1604. $("#testmask").Type("9");
  1605. isValid = Inputmask("currency", {
  1606. prefix: "$ "
  1607. }).isValid(testmask.value);
  1608. assert.equal(
  1609. isValid,
  1610. true,
  1611. 'Value: "' + testmask.value + '"; isValid: ' + isValid
  1612. );
  1613. }
  1614. done();
  1615. }, 0);
  1616. }
  1617. );
  1618. qunit.test("currency - goto last decimal place type 2", function (assert) {
  1619. const $fixture = $("#qunit-fixture");
  1620. $fixture.append('<input type="text" id="testmask" />');
  1621. const testmask = document.getElementById("testmask");
  1622. Inputmask("currency", {
  1623. prefix: "$ "
  1624. }).mask(testmask);
  1625. testmask.focus();
  1626. $.caret(testmask, 5);
  1627. $("#testmask").Type("2");
  1628. assert.equal($(testmask).val(), "$ 0.02", "Result " + $(testmask).val());
  1629. });
  1630. qunit.test("decimal minvalue 0,3 - enter 0,2 - Aifz", function (assert) {
  1631. const done = assert.async(),
  1632. $fixture = $("#qunit-fixture");
  1633. $fixture.append('<input type="text" id="testmask" />');
  1634. const testmask = document.getElementById("testmask");
  1635. Inputmask({
  1636. alias: "decimal",
  1637. radixPoint: ",",
  1638. digits: "2",
  1639. min: "0,3",
  1640. max: "5",
  1641. allowMinus: false
  1642. }).mask(testmask);
  1643. testmask.focus();
  1644. $("#testmask").Type("0,2");
  1645. setTimeout(function () {
  1646. testmask.blur();
  1647. assert.equal($(testmask).val(), "0,3", "Result " + $(testmask).val());
  1648. done();
  1649. }, 100);
  1650. });
  1651. qunit.test("currency max = 100 - type 200 - zigtechjs", function (assert) {
  1652. const done = assert.async(),
  1653. $fixture = $("#qunit-fixture");
  1654. $fixture.append('<input type="text" id="testmask" />');
  1655. const testmask = document.getElementById("testmask");
  1656. Inputmask("percentage", {
  1657. placeholder: "_",
  1658. digitsOptional: false,
  1659. digits: 2,
  1660. max: 100,
  1661. enforceDigitsOnBlur: true
  1662. }).mask(testmask);
  1663. testmask.focus();
  1664. $("#testmask").trigger("click");
  1665. setTimeout(function () {
  1666. $("#testmask").Type("200");
  1667. testmask.blur();
  1668. assert.equal(testmask.value, "20.00 %", "Result " + testmask.value);
  1669. done();
  1670. }, 0);
  1671. });
  1672. qunit.test(
  1673. "Numbers get swapped when cursor near suffix. #1278 - xklepio",
  1674. function (assert) {
  1675. const $fixture = $("#qunit-fixture");
  1676. $fixture.append('<input type="text" id="testmask" />');
  1677. const testmask = document.getElementById("testmask");
  1678. Inputmask("decimal", {
  1679. radixPoint: ",",
  1680. digits: "2",
  1681. autoUnmask: false,
  1682. suffix: " €"
  1683. }).mask(testmask);
  1684. testmask.focus();
  1685. $.caret(testmask, 1);
  1686. $("#testmask").Type("52");
  1687. assert.equal(testmask.value, "52 €", "Result " + testmask.value);
  1688. }
  1689. );
  1690. qunit.test("numeric + numericInput #1328 - douglasdtc", function (assert) {
  1691. const $fixture = $("#qunit-fixture");
  1692. $fixture.append('<input type="text" id="testmask" />');
  1693. const testmask = document.getElementById("testmask");
  1694. Inputmask("numeric", {
  1695. groupSeparator: ".",
  1696. radixPoint: ",",
  1697. numericInput: true,
  1698. digits: 2
  1699. }).mask(testmask);
  1700. testmask.focus();
  1701. $("#testmask").val("237,38");
  1702. assert.equal(testmask.value, "237,38", "Result " + testmask.value);
  1703. });
  1704. qunit.test("numeric + type -", function (assert) {
  1705. const $fixture = $("#qunit-fixture");
  1706. $fixture.append('<input type="text" id="testmask" />');
  1707. const testmask = document.getElementById("testmask");
  1708. Inputmask("currency", {
  1709. negationSymbol: { front: "(", back: ")" },
  1710. prefix: "$ "
  1711. }).mask(testmask);
  1712. testmask.focus();
  1713. $.caret(testmask, 1);
  1714. $("#testmask").Type("-");
  1715. assert.equal(testmask.value, "($ 0.00)", "Result " + testmask.value);
  1716. });
  1717. qunit.test("numeric + type 123 - select partial type 0", function (assert) {
  1718. const $fixture = $("#qunit-fixture");
  1719. $fixture.append('<input type="text" id="testmask" />');
  1720. const testmask = document.getElementById("testmask");
  1721. Inputmask("currency", {
  1722. prefix: "$ "
  1723. }).mask(testmask);
  1724. testmask.focus();
  1725. $("#testmask").val("123");
  1726. $.caret(testmask, 0, 5);
  1727. $("#testmask").Type("0");
  1728. assert.equal(testmask.value, "$ 0.00", "Result " + testmask.value);
  1729. });
  1730. qunit.test(
  1731. 'numeric + groupSeparator: " " backspace, - krajcot',
  1732. function (assert) {
  1733. const $fixture = $("#qunit-fixture");
  1734. $fixture.append('<input type="text" id="testmask" />');
  1735. const testmask = document.getElementById("testmask");
  1736. Inputmask("currency", {
  1737. digits: 0,
  1738. groupSeparator: " ",
  1739. prefix: "$ "
  1740. }).mask(testmask);
  1741. testmask.focus();
  1742. $("#testmask").Type("1");
  1743. $.caret(testmask, 3);
  1744. $("#testmask").SendKey(keys.Backspace);
  1745. assert.equal(
  1746. testmask.inputmask._valueGet(true),
  1747. "$ 0",
  1748. "Result " + testmask.inputmask._valueGet(true)
  1749. );
  1750. }
  1751. );
  1752. qunit.test(
  1753. 'numeric + groupSeparator: " " delete, - krajcot',
  1754. function (assert) {
  1755. const $fixture = $("#qunit-fixture");
  1756. $fixture.append('<input type="text" id="testmask" />');
  1757. const testmask = document.getElementById("testmask");
  1758. Inputmask("currency", {
  1759. digits: 0,
  1760. groupSeparator: " ",
  1761. prefix: "$ "
  1762. }).mask(testmask);
  1763. testmask.focus();
  1764. $("#testmask").Type("1");
  1765. $.caret(testmask, 2);
  1766. $("#testmask").SendKey(keys.Delete);
  1767. assert.equal(
  1768. testmask.inputmask._valueGet(true),
  1769. "$ 0",
  1770. "Result " + testmask.inputmask._valueGet(true)
  1771. );
  1772. }
  1773. );
  1774. qunit.test("minvalue, - serGlazkov", function (assert) {
  1775. const $fixture = $("#qunit-fixture");
  1776. $fixture.append('<input type="text" id="testmask" />');
  1777. const testmask = document.getElementById("testmask");
  1778. Inputmask({
  1779. alias: "integer",
  1780. autoUnmask: false,
  1781. rightAlign: false,
  1782. min: 18,
  1783. max: 80,
  1784. prefix: "",
  1785. suffix: " %"
  1786. }).mask(testmask);
  1787. testmask.focus();
  1788. $("#testmask").Type("30");
  1789. $.caret(testmask, 1);
  1790. $("#testmask").SendKey(keys.Delete);
  1791. $("#testmask").Type("1");
  1792. assert.equal(testmask.value, "31 %", "Result " + testmask.value);
  1793. });
  1794. qunit.test("groupseparator ' ' - krajcot", function (assert) {
  1795. const done = assert.async(),
  1796. $fixture = $("#qunit-fixture");
  1797. $fixture.append('<input type="text" id="testmask" />');
  1798. const testmask = document.getElementById("testmask");
  1799. Inputmask("currency", {
  1800. groupSeparator: " ",
  1801. suffix: " €",
  1802. prefix: "",
  1803. digits: 0,
  1804. inputEventOnly: false
  1805. }).mask(testmask);
  1806. testmask.focus();
  1807. $("#testmask").Type("0");
  1808. setTimeout(function () {
  1809. assert.equal(testmask.value, "0 €", "Result " + testmask.value);
  1810. done();
  1811. }, 0);
  1812. });
  1813. qunit.test("decimal set 0.50", function (assert) {
  1814. const $fixture = $("#qunit-fixture");
  1815. $fixture.append('<input type="text" id="testmask" />');
  1816. const testmask = document.getElementById("testmask");
  1817. Inputmask("decimal", {
  1818. radixPoint: ",",
  1819. groupSeparator: ".",
  1820. digits: 2,
  1821. removeMaskOnSubmit: false,
  1822. enforceDigitsOnBlur: true,
  1823. inputType: "number"
  1824. }).mask(testmask);
  1825. $(testmask).val("0.50");
  1826. testmask.blur();
  1827. assert.equal(testmask.value, "0,50", "Result " + testmask.value);
  1828. });
  1829. qunit.test("decimal set 1.000", function (assert) {
  1830. const $fixture = $("#qunit-fixture");
  1831. $fixture.append('<input type="text" id="testmask" />');
  1832. const testmask = document.getElementById("testmask");
  1833. Inputmask("decimal", {
  1834. radixPoint: ",",
  1835. groupSeparator: ".",
  1836. digits: 2,
  1837. removeMaskOnSubmit: false
  1838. }).mask(testmask);
  1839. $(testmask).val("1.000");
  1840. assert.equal(testmask.value, "1.000", "Result " + testmask.value);
  1841. });
  1842. qunit.test("decimal set 1234.56", function (assert) {
  1843. const $fixture = $("#qunit-fixture");
  1844. $fixture.append('<input type="text" id="testmask" />');
  1845. const testmask = document.getElementById("testmask");
  1846. Inputmask("decimal", {
  1847. radixPoint: ",",
  1848. groupSeparator: ".",
  1849. digits: 2,
  1850. removeMaskOnSubmit: false,
  1851. inputType: "number"
  1852. }).mask(testmask);
  1853. $(testmask).val("1234.56");
  1854. assert.equal(testmask.value, "1.234,56", "Result " + testmask.value);
  1855. });
  1856. qunit.test("currency set 100.00 - NurGuz", function (assert) {
  1857. const $fixture = $("#qunit-fixture");
  1858. $fixture.append('<input type="text" id="testmask" />');
  1859. const testmask = document.getElementById("testmask");
  1860. Inputmask("currency", {
  1861. radixPoint: ",",
  1862. inputType: "number",
  1863. prefix: "$ "
  1864. }).mask(testmask);
  1865. $(testmask).val("100.00");
  1866. assert.equal(testmask.value, "$ 100,00", "Result " + testmask.value);
  1867. });
  1868. qunit.test("decimal suffix: years => yers - marcelokohl", function (assert) {
  1869. const $fixture = $("#qunit-fixture");
  1870. $fixture.append('<input type="text" id="testmask" />');
  1871. const testmask = document.getElementById("testmask");
  1872. Inputmask("decimal", {
  1873. suffix: " years",
  1874. rightAlign: false,
  1875. onBeforeMask: function (value, opts) {
  1876. return value;
  1877. }
  1878. }).mask(testmask);
  1879. $(testmask).val("1");
  1880. assert.equal(testmask.value, "1 years", "Result " + testmask.value);
  1881. });
  1882. qunit.test(
  1883. "decimal type 38700 delete 7 type 8 - Borzák Attila",
  1884. function (assert) {
  1885. const $fixture = $("#qunit-fixture");
  1886. $fixture.append('<input type="text" id="testmask" />');
  1887. const testmask = document.getElementById("testmask");
  1888. Inputmask("decimal", { groupSeparator: "," }).mask(testmask);
  1889. $(testmask).Type("38800");
  1890. $.caret(testmask, 3);
  1891. $("#testmask").SendKey(keys.Delete);
  1892. $("#testmask").Type("8");
  1893. assert.equal(testmask.value, "38,800", "Result " + testmask.value);
  1894. }
  1895. );
  1896. qunit.test("decimal type 100. delete - Borzák Attila", function (assert) {
  1897. const $fixture = $("#qunit-fixture");
  1898. $fixture.append('<input type="text" id="testmask" />');
  1899. const testmask = document.getElementById("testmask");
  1900. Inputmask("decimal", { groupSeparator: "," }).mask(testmask);
  1901. $(testmask).Type("100.");
  1902. $("#testmask").SendKey(keys.Backspace);
  1903. assert.equal(testmask.value, "100", "Result " + testmask.value);
  1904. });
  1905. qunit.test("Currency digits and delete #1351 - kousenlsn", function (assert) {
  1906. const $fixture = $("#qunit-fixture");
  1907. $fixture.append('<input type="text" id="testmask" />');
  1908. const testmask = document.getElementById("testmask");
  1909. Inputmask({
  1910. max: "99999999.99",
  1911. alias: "currency",
  1912. prefix: "",
  1913. autoUnmask: true
  1914. }).mask(testmask);
  1915. $(testmask).Type("1.23");
  1916. $.caret(testmask, 0);
  1917. $("#testmask").SendKey(keys.Delete);
  1918. $("#testmask").SendKey(keys.Delete);
  1919. $("#testmask").SendKey(keys.Delete);
  1920. $("#testmask").SendKey(keys.Delete);
  1921. assert.equal(testmask.value, "0.00", "Result " + testmask.value);
  1922. });
  1923. qunit.test(
  1924. "numeric + (negationSymbol = parentheses) + (clearIncomplete = true) + type -123. then blur",
  1925. function (assert) {
  1926. const $fixture = $("#qunit-fixture");
  1927. $fixture.append('<input type="text" id="testmask" />');
  1928. const testmask = document.getElementById("testmask");
  1929. Inputmask("numeric", {
  1930. rightAlign: false,
  1931. digits: 3,
  1932. enforceDigitsOnBlur: true,
  1933. groupSeparator: ",",
  1934. negationSymbol: {
  1935. front: "(",
  1936. back: ")"
  1937. },
  1938. clearIncomplete: true
  1939. }).mask(testmask);
  1940. testmask.focus();
  1941. $("#testmask").val("-123.");
  1942. testmask.blur();
  1943. assert.equal(testmask.value, "(123.000)", "Result " + testmask.value);
  1944. }
  1945. );
  1946. qunit.test("numeric rounding with digits 0 - dianavele", function (assert) {
  1947. const $fixture = $("#qunit-fixture");
  1948. $fixture.append('<input type="text" id="testmask" value="123,67"/>');
  1949. const testmask = document.getElementById("testmask");
  1950. Inputmask("numeric", {
  1951. radixPoint: ",",
  1952. groupSeparator: ".",
  1953. digits: 0,
  1954. showMaskOnHover: false,
  1955. showMaskOnFocus: false,
  1956. placeholder: "0",
  1957. digitsOptional: false,
  1958. clearMaskOnLostFocus: false
  1959. }).mask(testmask);
  1960. assert.equal(testmask.value, "124", "Result " + testmask.value);
  1961. });
  1962. qunit.test("set 0.001 - ghost", function (assert) {
  1963. const $fixture = $("#qunit-fixture");
  1964. $fixture.append('<input type="text" id="testmask" value="0.001"/>');
  1965. const testmask = document.getElementById("testmask");
  1966. Inputmask("numeric", {
  1967. digits: 3,
  1968. digitsOptional: false,
  1969. suffix: " €",
  1970. rightAlign: 0,
  1971. groupSeparator: ".",
  1972. radixPoint: ",",
  1973. placeholder: "0",
  1974. autoUnmask: true,
  1975. removeMaskOnSubmit: true,
  1976. inputType: "number"
  1977. }).mask(testmask);
  1978. assert.equal(testmask.value, "0,001", "Result " + testmask.value);
  1979. });
  1980. qunit.test(
  1981. "percentage digits: 2 max: 1000.01 - jamesRUSS2 #2177",
  1982. function (assert) {
  1983. const $fixture = $("#qunit-fixture");
  1984. $fixture.append('<input type="text" id="testmask" />');
  1985. const testmask = document.getElementById("testmask");
  1986. Inputmask("percentage", {
  1987. digits: 2,
  1988. max: "1000.01"
  1989. }).mask(testmask);
  1990. testmask.focus();
  1991. $("#testmask").Type("9999");
  1992. assert.equal(testmask.value, "999 %", "Result " + testmask.value);
  1993. }
  1994. );
  1995. qunit.test(
  1996. "'Decimal'. New entered value is automatically prefixed with '.' #2189",
  1997. function (assert) {
  1998. const $fixture = $("#qunit-fixture");
  1999. $fixture.append('<input type="text" id="testmask" />');
  2000. const testmask = document.getElementById("testmask");
  2001. Inputmask("decimal").mask(testmask);
  2002. testmask.focus();
  2003. $("#testmask").Type("123.45");
  2004. $.caret(testmask, 0, "123.45".length);
  2005. $("#testmask").Type("1");
  2006. assert.equal(testmask.value, "1", "Result " + testmask.value);
  2007. }
  2008. );
  2009. qunit.test("Decimal - select all type radixpoint - #2188", function (assert) {
  2010. const $fixture = $("#qunit-fixture");
  2011. $fixture.append('<input type="text" id="testmask" />');
  2012. const testmask = document.getElementById("testmask");
  2013. Inputmask("decimal", {
  2014. digits: 8,
  2015. digitsOptional: false,
  2016. max: 999999999,
  2017. placeholder: "0.00000000",
  2018. rightAlign: false,
  2019. showMaskOnHover: false
  2020. }).mask(testmask);
  2021. testmask.focus();
  2022. $("#testmask").Type("123.45");
  2023. $.caret(testmask, 0, "0.00000000".length);
  2024. $("#testmask").Type(".1");
  2025. assert.equal(testmask.value, "0.10000000", "Result " + testmask.value);
  2026. });
  2027. qunit.test("Decimal - set 0.0000001 - #2110", function (assert) {
  2028. const $fixture = $("#qunit-fixture");
  2029. $fixture.append('<input type="text" id="testmask" />');
  2030. const testmask = document.getElementById("testmask");
  2031. Inputmask("decimal", {
  2032. alias: "decimal",
  2033. placeholder: "",
  2034. digits: 7,
  2035. digitsOptional: true,
  2036. groupSeparator: " ",
  2037. autoGroup: true,
  2038. showMaskOnHover: false,
  2039. showMaskOnFocus: false,
  2040. clearIncomplete: false
  2041. }).mask(testmask);
  2042. $("#testmask").val("0.0000001");
  2043. assert.equal(testmask.value, "0.0000001", "Result " + testmask.value);
  2044. });
  2045. qunit.test("currency type 1234.56 + backspace x4", function (assert) {
  2046. const done = assert.async(),
  2047. $fixture = $("#qunit-fixture");
  2048. $fixture.append('<input type="text" id="testmask"/>');
  2049. const testmask = document.getElementById("testmask");
  2050. Inputmask("currency", {
  2051. prefix: "$ ",
  2052. inputEventOnly: false
  2053. }).mask(testmask);
  2054. testmask.focus();
  2055. $.caret(testmask, 3);
  2056. setTimeout(function () {
  2057. $(testmask).Type("1234.56");
  2058. $("#testmask").SendKey(keys.Backspace);
  2059. $("#testmask").SendKey(keys.Backspace);
  2060. $("#testmask").SendKey(keys.Backspace);
  2061. $("#testmask").SendKey(keys.Backspace);
  2062. assert.equal(testmask.value, "$ 123.00", "Result " + testmask.value);
  2063. done();
  2064. }, 0);
  2065. });
  2066. qunit.test(
  2067. "digitsOptional: true + suffix not working as expected. can't enter decimal digits #2212",
  2068. function (assert) {
  2069. const done = assert.async(),
  2070. $fixture = $("#qunit-fixture");
  2071. $fixture.append('<input type="text" id="testmask"/>');
  2072. const testmask = document.getElementById("testmask");
  2073. Inputmask({
  2074. alias: "decimal",
  2075. groupSeparator: ",",
  2076. suffix: " EUR",
  2077. digits: 2,
  2078. digitsOptional: true // BUG
  2079. }).mask(testmask);
  2080. testmask.focus();
  2081. setTimeout(function () {
  2082. $(testmask).Type("1234.56");
  2083. assert.equal(
  2084. testmask.value,
  2085. "1,234.56 EUR",
  2086. "Result " + testmask.value
  2087. );
  2088. done();
  2089. }, 0);
  2090. }
  2091. );
  2092. qunit.test(
  2093. "initial 12345 - add new number at the end with positionCaretOnClick: select, using END key - #2223",
  2094. function (assert) {
  2095. const done = assert.async(),
  2096. $fixture = $("#qunit-fixture");
  2097. $fixture.append('<input type="text" id="testmask" />');
  2098. const testmask = document.getElementById("testmask");
  2099. Inputmask("decimal", {
  2100. positionCaretOnClick: "select",
  2101. radixFocus: true,
  2102. digitsOptional: false,
  2103. digits: 2,
  2104. _radixDance: true,
  2105. numericInput: true
  2106. }).mask(testmask);
  2107. testmask.focus();
  2108. $("#testmask").trigger("click");
  2109. $(testmask).Type("12345");
  2110. setTimeout(function () {
  2111. $("#testmask").SendKey(keys.End);
  2112. $(testmask).Type("6");
  2113. assert.equal(testmask.value, "1234.56", "Result " + testmask.value);
  2114. done();
  2115. }, 5);
  2116. }
  2117. );
  2118. qunit.test(
  2119. "initial 123.45 - add new number at the end with positionCaretOnClick: select, using END key - #2223",
  2120. function (assert) {
  2121. const done = assert.async(),
  2122. $fixture = $("#qunit-fixture");
  2123. $fixture.append('<input type="text" id="testmask" value="123.45" />');
  2124. const testmask = document.getElementById("testmask");
  2125. Inputmask("decimal", {
  2126. positionCaretOnClick: "select",
  2127. radixFocus: true,
  2128. digitsOptional: false,
  2129. digits: 2,
  2130. _radixDance: true,
  2131. numericInput: true
  2132. }).mask(testmask);
  2133. testmask.focus();
  2134. $("#testmask").trigger("click");
  2135. setTimeout(function () {
  2136. $("#testmask").SendKey(keys.End);
  2137. $(testmask).Type("6");
  2138. assert.equal(testmask.value, "1234.56", "Result " + testmask.value);
  2139. done();
  2140. }, 5);
  2141. }
  2142. );
  2143. qunit.test(
  2144. "initial 12345 - add new number at the end with positionCaretOnClick: select, using RIGHT key - #2223",
  2145. function (assert) {
  2146. const done = assert.async(),
  2147. $fixture = $("#qunit-fixture");
  2148. $fixture.append('<input type="text" id="testmask" />');
  2149. const testmask = document.getElementById("testmask");
  2150. Inputmask("decimal", {
  2151. positionCaretOnClick: "select",
  2152. radixFocus: true,
  2153. digitsOptional: false,
  2154. digits: 2,
  2155. _radixDance: true,
  2156. numericInput: true
  2157. }).mask(testmask);
  2158. testmask.focus();
  2159. $("#testmask").trigger("click");
  2160. $(testmask).Type("12345");
  2161. setTimeout(function () {
  2162. $("#testmask").SendKey(keys.ArrowRight);
  2163. $(testmask).Type("6");
  2164. assert.equal(testmask.value, "1234.56", "Result " + testmask.value);
  2165. done();
  2166. }, 5);
  2167. }
  2168. );
  2169. qunit.test(
  2170. "initial 123.45 - add new number at the end with positionCaretOnClick: select, using RIGHT key - #2223",
  2171. function (assert) {
  2172. const done = assert.async(),
  2173. $fixture = $("#qunit-fixture");
  2174. $fixture.append('<input type="text" id="testmask" value="123.45" />');
  2175. const testmask = document.getElementById("testmask");
  2176. Inputmask("decimal", {
  2177. positionCaretOnClick: "select",
  2178. radixFocus: true,
  2179. digitsOptional: false,
  2180. digits: 2,
  2181. _radixDance: true,
  2182. numericInput: true
  2183. }).mask(testmask);
  2184. testmask.focus();
  2185. $("#testmask").trigger("click");
  2186. setTimeout(function () {
  2187. $("#testmask").SendKey(keys.ArrowRight);
  2188. $(testmask).Type("6");
  2189. assert.equal(testmask.value, "1234.56", "Result " + testmask.value);
  2190. done();
  2191. }, 5);
  2192. }
  2193. );
  2194. qunit.test(
  2195. "numeric digitsOptional true initial value 123.4",
  2196. function (assert) {
  2197. const $fixture = $("#qunit-fixture");
  2198. $fixture.append('<input type="text" id="testmask" value="123.4" />');
  2199. const testmask = document.getElementById("testmask");
  2200. Inputmask("numeric", {
  2201. max: 999.99,
  2202. digits: 2,
  2203. digitsOptional: true
  2204. }).mask(testmask);
  2205. assert.equal(testmask.value, "123.4", "Result " + testmask.value);
  2206. }
  2207. );
  2208. qunit.test(
  2209. "numeric digitsOptional false initial value 123.4",
  2210. function (assert) {
  2211. const $fixture = $("#qunit-fixture");
  2212. $fixture.append('<input type="text" id="testmask" value="123.4" />');
  2213. const testmask = document.getElementById("testmask");
  2214. Inputmask("numeric", {
  2215. max: 999.99,
  2216. digits: 2,
  2217. digitsOptional: false
  2218. }).mask(testmask);
  2219. assert.equal(testmask.value, "123.40", "Result " + testmask.value);
  2220. }
  2221. );
  2222. qunit.test("numeric clear value - honboubao", function (assert) {
  2223. const $fixture = $("#qunit-fixture");
  2224. $fixture.append('<input type="text" id="testmask"/>');
  2225. const testmask = document.getElementById("testmask");
  2226. Inputmask("numeric", {
  2227. radixPoint: ",",
  2228. placeholder: "_",
  2229. digits: 2,
  2230. digitsOptional: false
  2231. }).mask(testmask);
  2232. testmask.value = "";
  2233. assert.equal(testmask.value, "", 'Result "' + testmask.value + '"');
  2234. });
  2235. qunit.test(
  2236. "Set negative value in percentage - estraschnov",
  2237. function (assert) {
  2238. const $fixture = $("#qunit-fixture");
  2239. $fixture.append('<input type="text" id="testmask"/>');
  2240. const testmask = document.getElementById("testmask");
  2241. Inputmask("decimal", {
  2242. radixPoint: ".",
  2243. groupSeparator: ",",
  2244. autoGroup: true,
  2245. suffix: " %",
  2246. clearMaskOnLostFocus: false
  2247. }).mask(testmask);
  2248. testmask.value = -54;
  2249. assert.equal(testmask.value, "-54 %", 'Result "' + testmask.value + '"');
  2250. }
  2251. );
  2252. qunit.test(
  2253. "setvalue() removes number before comma when positionCaretOnClick and digitsOptional are set. #2457",
  2254. function (assert) {
  2255. const $fixture = $("#qunit-fixture");
  2256. $fixture.append('<input type="text" id="testmask"/>');
  2257. const testmask = document.getElementById("testmask");
  2258. Inputmask({
  2259. alias: "numeric",
  2260. digits: 2,
  2261. digitsOptional: false,
  2262. positionCaretOnClick: "select",
  2263. suffix: " €"
  2264. }).mask(testmask);
  2265. testmask.inputmask.setValue(12.36);
  2266. assert.equal(
  2267. testmask.value,
  2268. "12.36 €",
  2269. 'Result "' + testmask.value + '"'
  2270. );
  2271. }
  2272. );
  2273. qunit.test(
  2274. "Highlighting Values with Negative Numbers #2714",
  2275. function (assert) {
  2276. const $fixture = $("#qunit-fixture");
  2277. $fixture.append('<input type="text" id="testmask"/>');
  2278. const testmask = document.getElementById("testmask");
  2279. Inputmask("numeric", {
  2280. digits: 0,
  2281. groupSeparator: ",",
  2282. shortcuts: null
  2283. }).mask(testmask);
  2284. $(testmask).Type("-3");
  2285. $.caret(testmask, 0, 2);
  2286. $(testmask).Type("4");
  2287. assert.equal(testmask.value, "4", 'Result "' + testmask.value + '"');
  2288. }
  2289. );
  2290. qunit.test("Currency set null value - #2789", function (assert) {
  2291. const $fixture = $("#qunit-fixture");
  2292. $fixture.append('<input type="text" id="testmask"/>');
  2293. const testmask = document.getElementById("testmask");
  2294. Inputmask("currency").mask(testmask);
  2295. testmask.value = null;
  2296. assert.equal(testmask.value, "", 'Result "' + testmask.value + '"');
  2297. });
  2298. }