/
documentation_test.rb
46 lines (37 loc) · 1.3 KB
/
documentation_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
require 'test_helper'
# Pull the EmojiHelper example from the docs
readme = File.expand_path('../../README.md', __FILE__)
docs = File.open(readme, 'r:UTF-8') { |f| f.read }
eval docs.match(/^module.+?^end/m)[0]
String.class_eval do
def html_safe() self end
def present?() !empty? end
end
class DocumentationTest < TestCase
module Helper
extend EmojiHelper
def self.h(str)
str.gsub('<', '<').gsub('>', '>')
end
def self.asset_path(img)
"/images/#{img}?123"
end
end
test "replaces emoji syntax with images" do
assert_equal "It's raining " \
'<img alt="cat" src="/images/emoji/unicode/1f431.png?123" style="vertical-align:middle" width="20" height="20" />s and ' \
'<img alt="dog" src="/images/emoji/unicode/1f436.png?123" style="vertical-align:middle" width="20" height="20" />s!',
Helper.emojify("It's raining :cat:s and :dog:s!")
end
test "doesn't replace unknown emoji" do
content = ":jupiter: is in :space:"
assert_equal content, Helper.emojify(content)
end
test "escapes other HTML" do
assert_equal "You have been <script>alert('pwned!')</script>",
Helper.emojify("You have been <script>alert('pwned!')</script>")
end
test "returns nil for blank content" do
assert_nil Helper.emojify('')
end
end