tests.html 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <link rel="stylesheet" href="//cdn.jsdelivr.net/qunit/1.14.0/qunit.css" type="text/css" media="screen" />
  6. </head>
  7. <body>
  8. <div id="qunit"></div>
  9. <div id="qunit-fixture"></div>
  10. <script src="http://cdn.jsdelivr.net/qunit/1.14.0/qunit.js"></script>
  11. <script src="../emojione.js"></script>
  12. <script>
  13. QUnit.module("toImage");
  14. QUnit.test( "test toImage", function( assert ) {
  15. assert.equal(emojione.toImage("Hello world! ๐Ÿ˜„ :smile:"), "Hello world! <img class=\"emojione\" alt=\"๐Ÿ˜„\" title=\":smile:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f604.png?v=2.2.7\"/> <img class=\"emojione\" alt=\"๐Ÿ˜„\" title=\":smile:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f604.png?v=2.2.7\"/>");
  16. });
  17. QUnit.test( "mixed ascii, regular unicode and duplicate emoji", function( assert ) {
  18. assert.equal(emojione.toImage(":alien: is ๐Ÿ‘ฝ and ์ € is not :alien: or :alien: also :randomy: is not emoji"), "<img class=\"emojione\" alt=\"๐Ÿ‘ฝ\" title=\":alien:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f47d.png?v=2.2.7\"/> is <img class=\"emojione\" alt=\"๐Ÿ‘ฝ\" title=\":alien:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f47d.png?v=2.2.7\"/> and ์ € is not <img class=\"emojione\" alt=\"๐Ÿ‘ฝ\" title=\":alien:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f47d.png?v=2.2.7\"/> or <img class=\"emojione\" alt=\"๐Ÿ‘ฝ\" title=\":alien:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f47d.png?v=2.2.7\"/> also :randomy: is not emoji");
  19. });
  20. QUnit.module("unifyUnicode");
  21. QUnit.test( "test unifyUnicode", function( assert ) {
  22. assert.equal(emojione.unifyUnicode("Hello world! ๐Ÿ˜„ :smile:"), "Hello world! ๐Ÿ˜„ ๐Ÿ˜„");
  23. });
  24. QUnit.test( "mixed ascii, regular unicode and duplicate emoji", function( assert ) {
  25. assert.equal(emojione.unifyUnicode(":alien: is ๐Ÿ‘ฝ and ์ € is not :alien: or :alien: also :randomy: is not emoji"), "๐Ÿ‘ฝ is ๐Ÿ‘ฝ and ์ € is not ๐Ÿ‘ฝ or ๐Ÿ‘ฝ also :randomy: is not emoji");
  26. });
  27. QUnit.test( "multiline emoji string", function( assert ) {
  28. assert.equal(emojione.unifyUnicode(":dancer:\
  29. :dancer:"), "๐Ÿ’ƒ\
  30. ๐Ÿ’ƒ");
  31. });
  32. QUnit.test( "triple emoji string", function( assert ) {
  33. assert.equal(emojione.unifyUnicode(":dancer::dancer::alien:"), "๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿ‘ฝ");
  34. });
  35. QUnit.module("shortnameToUnicode");
  36. QUnit.test( "single unicode character conversion", function( assert ) {
  37. assert.equal(emojione.shortnameToUnicode("Hello world! ๐Ÿ˜„ :smile:"), "Hello world! ๐Ÿ˜„ ๐Ÿ˜„");
  38. });
  39. QUnit.test( "shortname mid sentence with a comma", function( assert ) {
  40. assert.equal(emojione.shortnameToUnicode("The :unicorn:, is Emoji One's official mascot."), "The ๐Ÿฆ„, is Emoji One's official mascot.");
  41. });
  42. QUnit.test( "shortname at start of sentence with apostrophe", function( assert ) {
  43. assert.equal(emojione.shortnameToUnicode(":snail:'s are cool!"), "๐ŸŒ's are cool!");
  44. });
  45. QUnit.test( "shortname shares a colon", function( assert ) {
  46. assert.equal(emojione.shortnameToUnicode(":invalid:snail:"), ":invalid๐ŸŒ");
  47. });
  48. QUnit.test( "mixed ascii, regular unicode and duplicate emoji", function( assert ) {
  49. assert.equal(emojione.shortnameToUnicode(":alien: is ๐Ÿ‘ฝ and ์ € is not :alien: or :alien: also :randomy: is not emoji"), "๐Ÿ‘ฝ is ๐Ÿ‘ฝ and ์ € is not ๐Ÿ‘ฝ or ๐Ÿ‘ฝ also :randomy: is not emoji");
  50. });
  51. QUnit.test( "multiline emoji string", function( assert ) {
  52. assert.equal(emojione.shortnameToUnicode(":dancer:\n:dancer:"), "๐Ÿ’ƒ\n๐Ÿ’ƒ");
  53. });
  54. QUnit.test( "triple emoji string", function( assert ) {
  55. assert.equal(emojione.shortnameToUnicode(":dancer::dancer::alien:"), "๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿ‘ฝ");
  56. });
  57. QUnit.module("shortnameToImage");
  58. QUnit.test( "single shortname character conversion", function( assert ) {
  59. assert.equal(emojione.shortnameToImage("Hello world! ๐Ÿ˜„ :smile:"), "Hello world! ๐Ÿ˜„ <img class=\"emojione\" alt=\"๐Ÿ˜„\" title=\":smile:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f604.png?v=2.2.7\"/>");
  60. });
  61. QUnit.test( "shortname at start of sentence with apostrophe", function( assert ) {
  62. assert.equal(emojione.shortnameToImage(":snail:'s are cool!"), "<img class=\"emojione\" alt=\"๐ŸŒ\" title=\":snail:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f40c.png?v=2.2.7\"/>'s are cool!");
  63. });
  64. QUnit.test( "shortname shares a colon", function( assert ) {
  65. assert.equal(emojione.shortnameToImage(":invalid:snail:"), ":invalid<img class=\"emojione\" alt=\"๐ŸŒ\" title=\":snail:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f40c.png?v=2.2.7\"/>");
  66. });
  67. QUnit.test( "mixed ascii, regular unicode and duplicate emoji", function( assert ) {
  68. assert.equal(emojione.shortnameToImage(":alien: is ๐Ÿ‘ฝ and ์ € is not :alien: or :alien: also :randomy: is not emoji"), "<img class=\"emojione\" alt=\"๐Ÿ‘ฝ\" title=\":alien:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f47d.png?v=2.2.7\"/> is ๐Ÿ‘ฝ and ์ € is not <img class=\"emojione\" alt=\"๐Ÿ‘ฝ\" title=\":alien:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f47d.png?v=2.2.7\"/> or <img class=\"emojione\" alt=\"๐Ÿ‘ฝ\" title=\":alien:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f47d.png?v=2.2.7\"/> also :randomy: is not emoji");
  69. });
  70. QUnit.test( "multiline emoji string", function( assert ) {
  71. assert.equal(emojione.shortnameToImage(":dancer:\n:dancer:"), "<img class=\"emojione\" alt=\"๐Ÿ’ƒ\" title=\":dancer:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f483.png?v=2.2.7\"/>\n<img class=\"emojione\" alt=\"๐Ÿ’ƒ\" title=\":dancer:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f483.png?v=2.2.7\"/>");
  72. });
  73. QUnit.test( "triple emoji string", function( assert ) {
  74. assert.equal(emojione.shortnameToImage(":dancer::dancer::alien:"), "<img class=\"emojione\" alt=\"๐Ÿ’ƒ\" title=\":dancer:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f483.png?v=2.2.7\"/><img class=\"emojione\" alt=\"๐Ÿ’ƒ\" title=\":dancer:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f483.png?v=2.2.7\"/><img class=\"emojione\" alt=\"๐Ÿ‘ฝ\" title=\":alien:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f47d.png?v=2.2.7\"/>");
  75. });
  76. QUnit.module("toShort");
  77. QUnit.test( "single unicode character conversion", function( assert ) {
  78. assert.equal(emojione.toShort("Hello world! ๐Ÿ˜„ :smile:"), "Hello world! :smile: :smile:");
  79. });
  80. QUnit.test( "mixed ascii, regular unicode and duplicate emoji", function( assert ) {
  81. assert.equal(emojione.toShort("๐Ÿ‘ฝ is not :alien: and ์ € is not ๐Ÿ‘ฝ or ๐Ÿ‘ฝ"), ":alien: is not :alien: and ์ € is not :alien: or :alien:");
  82. });
  83. QUnit.test( "multiline emoji string", function( assert ) {
  84. assert.equal(emojione.toShort("๐Ÿ’ƒ\n๐Ÿ’ƒ"), ":dancer:\n:dancer:");
  85. });
  86. QUnit.test( "alias vs. canonical", function( assert ) {
  87. assert.equal(emojione.toShort("๐Ÿ‡ฏ๐Ÿ‡ต ใฉใ†ใ‚‚ใ‚ใ‚ŠใŒใจใ†"), ":flag_jp: ใฉใ†ใ‚‚ใ‚ใ‚ŠใŒใจใ†");
  88. });
  89. QUnit.test( "unicode character conversion within excluded tag", function( assert ) {
  90. assert.equal(emojione.toShort("<div>๐Ÿ˜„</div>"), "<div>:smile:</div>");
  91. });
  92. QUnit.module("toImage");
  93. QUnit.test( "single character shortname conversion", function( assert ) {
  94. assert.equal(emojione.toImage("Hello world! ๐Ÿ˜„ :smile:"), "Hello world! <img class=\"emojione\" alt=\"๐Ÿ˜„\" title=\":smile:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f604.png?v=2.2.7\"/> <img class=\"emojione\" alt=\"๐Ÿ˜„\" title=\":smile:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f604.png?v=2.2.7\"/>");
  95. });
  96. QUnit.test( "shortname shares a colon", function( assert ) {
  97. assert.equal(emojione.toImage(":invalid:snail:"), ":invalid<img class=\"emojione\" alt=\"๐ŸŒ\" title=\":snail:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f40c.png?v=2.2.7\"/>");
  98. });
  99. QUnit.test( "single unicode character conversion", function( assert ) {
  100. assert.equal(emojione.toImage("๐ŸŒ"), "<img class=\"emojione\" alt=\"๐ŸŒ\" title=\":snail:\" src=\"https://cdn.jsdelivr.net/emojione/assets/png/1f40c.png?v=2.2.7\"/>");
  101. });
  102. </script>
  103. </body>
  104. </html>