diff options
author | ujihisa <ujihisa@users.noreply.github.com> | 2019-02-21 17:42:08 +0900 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2019-08-04 11:55:03 +0900 |
commit | f85caf40a69d322bde80a547e4b17568604746ff (patch) | |
tree | dc27c0ad461dddbc0a7d2b2124e0a3b715a99358 /test/rexml | |
parent | 33e4a59b4a051b853bc412cf8badfc26a7cb391a (diff) | |
download | ruby-f85caf40a69d322bde80a547e4b17568604746ff.tar.gz |
[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!
https://github.com/ruby/rexml/commit/f6528d4477
Diffstat (limited to 'test/rexml')
-rw-r--r-- | test/rexml/parse/test_element.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/rexml/parse/test_element.rb b/test/rexml/parse/test_element.rb index aad915fe7b..7322e0eb4e 100644 --- a/test/rexml/parse/test_element.rb +++ b/test/rexml/parse/test_element.rb @@ -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></") |