diff --git a/lib/erb.rb b/lib/erb.rb index bb47943..d29505d 100644 --- a/lib/erb.rb +++ b/lib/erb.rb @@ -909,7 +909,7 @@ class ERB # is a > 0 & a < 10? # def html_escape(s) - s.to_s.gsub(/&/, "&").gsub(/\"/, """).gsub(/>/, ">").gsub(//, ">").gsub(/ '&', + '"' => '"', + '>' => '>', + '<' => '<', + "'" => ''', + '/' => '/' + }.each do |original, escaped| + assert_equal escaped, ERB::Util.h(original) + end + end + def test_without_filename erb = ERB.new("<% raise ::TestERB::MyError %>") e = assert_raise(MyError) {