aboutsummaryrefslogtreecommitdiffstats
path: root/test/rexml
diff options
context:
space:
mode:
authorujihisa <ujihisa@users.noreply.github.com>2019-02-21 17:42:08 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2019-08-04 11:55:03 +0900
commitf85caf40a69d322bde80a547e4b17568604746ff (patch)
treedc27c0ad461dddbc0a7d2b2124e0a3b715a99358 /test/rexml
parent33e4a59b4a051b853bc412cf8badfc26a7cb391a (diff)
downloadruby-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.rb13
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></")