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
|
require 'minitest/autorun'
require 'kpeg'
require 'kpeg/string_escape'
class TestKPegStringEscape < Minitest::Test
def test_bell
assert_equal '\b', parse("\b")
end
def test_carriage_return
assert_equal '\r', parse("\r")
end
def test_newline
assert_equal '\n', parse("\n")
end
def test_quote
assert_equal '\\\\\"', parse('\\"')
end
def test_slash
assert_equal '\\\\', parse('\\')
end
def test_tab
assert_equal '\t', parse("\t")
end
def parse(str, embed = false)
se = KPeg::StringEscape.new(str)
rule = (embed ? 'embed' : nil)
se.raise_error unless se.parse(rule)
se.text
end
end
|