StringTools.unit.hx 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. // htmlEscape
  2. var str = "<foo> & <bar> = 'invalid\"'";
  3. var strEsc = "&lt;foo&gt; &amp; &lt;bar&gt; = 'invalid\"'";
  4. var strEscQuotes = "&lt;foo&gt; &amp; &lt;bar&gt; = &#039;invalid&quot;&#039;";
  5. StringTools.htmlEscape(str, false) == strEsc;
  6. StringTools.htmlEscape(str, true) == strEscQuotes;
  7. // htmlUnescape
  8. StringTools.htmlUnescape(strEsc) == str;
  9. StringTools.htmlUnescape(strEscQuotes) == str;
  10. // startsWith
  11. StringTools.startsWith("foo", "f") == true;
  12. StringTools.startsWith("foo", "fo") == true;
  13. StringTools.startsWith("foo", "foo") == true;
  14. StringTools.startsWith("foo", "fooo") == false;
  15. StringTools.startsWith("foo", "") == true;
  16. StringTools.startsWith("", "") == true;
  17. // endsWith
  18. StringTools.endsWith("foo", "o") == true;
  19. StringTools.endsWith("foo", "oo") == true;
  20. StringTools.endsWith("foo", "foo") == true;
  21. StringTools.endsWith("foo", "fooo") == false;
  22. StringTools.endsWith("foo", "") == true;
  23. StringTools.endsWith("", "") == true;
  24. // isSpace
  25. StringTools.isSpace("", 0) == false;
  26. StringTools.isSpace("", 1) == false;
  27. StringTools.isSpace(" ", -1) == false;
  28. StringTools.isSpace("a", 0) == false;
  29. StringTools.isSpace(" ", 0) == true;
  30. StringTools.isSpace(" ", 0) == true;
  31. StringTools.isSpace(" a", 0) == true;
  32. StringTools.isSpace(String.fromCharCode(9), 0) == true;
  33. StringTools.isSpace(String.fromCharCode(10), 0) == true;
  34. StringTools.isSpace(String.fromCharCode(11), 0) == true;
  35. StringTools.isSpace(String.fromCharCode(12), 0) == true;
  36. StringTools.isSpace(String.fromCharCode(13), 0) == true;
  37. // ltrim
  38. StringTools.ltrim("a") == "a";
  39. StringTools.ltrim(" a") == "a";
  40. StringTools.ltrim(" a b") == "a b";
  41. StringTools.ltrim(" ") == "";
  42. StringTools.ltrim("") == "";
  43. // rtrim
  44. StringTools.rtrim("a") == "a";
  45. StringTools.rtrim("a ") == "a";
  46. StringTools.rtrim("a b ") == "a b";
  47. StringTools.rtrim(" ") == "";
  48. StringTools.rtrim("") == "";
  49. // trim
  50. StringTools.trim("a") == "a";
  51. StringTools.trim("a ") == "a";
  52. StringTools.trim("a b ") == "a b";
  53. StringTools.trim(" ") == "";
  54. StringTools.trim("") == "";
  55. StringTools.trim(" a") == "a";
  56. StringTools.trim(" a b") == "a b";
  57. StringTools.trim(" a b ") == "a b";
  58. // lpad
  59. StringTools.lpad("", "", 2) == "";
  60. StringTools.lpad("", "a", 0) == "";
  61. StringTools.lpad("b", "a", 0) == "b";
  62. StringTools.lpad("b", "", 2) == "b";
  63. StringTools.lpad("", "a", 2) == "aa";
  64. StringTools.lpad("b", "a", 0) == "b";
  65. StringTools.lpad("b", "a", 1) == "b";
  66. StringTools.lpad("b", "a", 2) == "ab";
  67. StringTools.lpad("b", "a", 3) == "aab";
  68. StringTools.lpad("b", "a", 4) == "aaab";
  69. StringTools.lpad("b", "abcdef", 4) == "abcdefb";
  70. // rpad
  71. StringTools.rpad("", "", 2) == "";
  72. StringTools.rpad("", "a", 0) == "";
  73. StringTools.rpad("b", "a", 0) == "b";
  74. StringTools.rpad("b", "", 2) == "b";
  75. StringTools.rpad("", "a", 2) == "aa";
  76. StringTools.rpad("b", "a", 0) == "b";
  77. StringTools.rpad("b", "a", 1) == "b";
  78. StringTools.rpad("b", "a", 2) == "ba";
  79. StringTools.rpad("b", "a", 3) == "baa";
  80. StringTools.rpad("b", "a", 4) == "baaa";
  81. StringTools.rpad("b", "abcdef", 4) == "babcdef";
  82. // replace
  83. var s = "xfooxfooxxbarxbarxx";
  84. StringTools.replace(s, "x", "") == "foofoobarbar";
  85. StringTools.replace(s, "", "") == "xfooxfooxxbarxbarxx";
  86. StringTools.replace(s, "", "x") == "xxfxoxoxxxfxoxoxxxxxbxaxrxxxbxaxrxxxx";
  87. // hex
  88. StringTools.hex(0, 0) == "0";
  89. StringTools.hex(0, 1) == "0";
  90. StringTools.hex(0, 2) == "00";
  91. StringTools.hex(1, 2) == "01";
  92. StringTools.hex(4564562) == "45A652";
  93. StringTools.hex(4564562, 0) == "45A652";
  94. StringTools.hex(4564562, 1) == "45A652";
  95. StringTools.hex( -1) == "FFFFFFFF";
  96. StringTools.hex( -2) == "FFFFFFFE";
  97. StringTools.hex(0xABCDEF, 7) == "0ABCDEF";
  98. StringTools.hex( -1, 8) == "FFFFFFFF";
  99. StringTools.hex( -481400000, 8) == "E34E6B40";
  100. // fastCodeAt
  101. var s = "foo1bar";
  102. StringTools.fastCodeAt(s, 0) == 102;
  103. StringTools.fastCodeAt(s, 1) == 111;
  104. StringTools.fastCodeAt(s, 2) == 111;
  105. StringTools.fastCodeAt(s, 3) == 49;
  106. StringTools.fastCodeAt(s, 4) == 98;
  107. StringTools.fastCodeAt(s, 5) == 97;
  108. StringTools.fastCodeAt(s, 6) == 114;
  109. var str = "abc";
  110. StringTools.fastCodeAt(str, 0) == "a".code;
  111. StringTools.fastCodeAt(str, 1) == "b".code;
  112. StringTools.fastCodeAt(str, 2) == "c".code;
  113. StringTools.fastCodeAt(String.fromCharCode(128), 0) == 128;
  114. StringTools.fastCodeAt(String.fromCharCode(255), 0) == 255;
  115. StringTools.isEof(StringTools.fastCodeAt(str, 2)) == false;
  116. StringTools.isEof(StringTools.fastCodeAt(str, 3)) == true;
  117. StringTools.isEof(StringTools.fastCodeAt("", 0)) == true;
  118. // isEOF
  119. #if neko
  120. StringTools.isEof(null) == true;
  121. #elseif (cs || java)
  122. StringTools.isEof( -1) == true;
  123. #elseif js
  124. // how do I test this here?
  125. #else
  126. StringTools.isEof(0) == true;
  127. #end