1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[ruby/rexml] Message less confusing error to human (#16)

* Message less confusing error to human

* Problem: Following error message is not helpful, because you have to reason
  that '' actually means it's in the top-level, and the 'div' (not '</div>') is
  an end tag

        require "rexml/parsers/lightparser"
        REXML::Parsers::LightParser.new('</div>').parse
        #=> Missing end tag for '' (got 'div')

* Solution: add a special case in error handling just to change the error message

        require "rexml/parsers/lightparser"
        REXML::Parsers::LightParser.new('</div>').parse
        #=> Unexpected top-level end tag (got 'div')

* Refactor by removing unnecessary `md` check

* Thanks @a_matsuda to review this at asakusa.rb!

f6528d4477
This commit is contained in:
ujihisa 2019-02-21 17:42:08 +09:00 committed by Hiroshi SHIBATA
parent 33e4a59b4a
commit f85caf40a6
2 changed files with 17 additions and 0 deletions

View file

@ -8,6 +8,19 @@ module REXMLTests
end
class TestInvalid < self
def test_top_level_end_tag
exception = assert_raise(REXML::ParseException) do
parse("</a>")
end
assert_equal(<<-DETAIL.chomp, exception.to_s)
Unexpected top-level end tag (got 'a')
Line: 1
Position: 4
Last 80 unconsumed characters:
DETAIL
end
def test_no_end_tag
exception = assert_raise(REXML::ParseException) do
parse("<a></")