diff options
Diffstat (limited to 'spec/ruby/library/cgi/unescapeHTML_spec.rb')
| -rw-r--r-- | spec/ruby/library/cgi/unescapeHTML_spec.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/spec/ruby/library/cgi/unescapeHTML_spec.rb b/spec/ruby/library/cgi/unescapeHTML_spec.rb new file mode 100644 index 0000000000..e43dcc83e5 --- /dev/null +++ b/spec/ruby/library/cgi/unescapeHTML_spec.rb @@ -0,0 +1,48 @@ +require_relative '../../spec_helper' +begin + require 'cgi/escape' +rescue LoadError + require 'cgi' +end + +describe "CGI.unescapeHTML" do + it "unescapes '& < > "' to '& < > \"'" do + input = '& < > "' + expected = '& < > "' + CGI.unescapeHTML(input).should == expected + end + + it "doesn't unescape other html entities such as '©' or '&heart'" do + input = '©&heart;' + expected = input + CGI.unescapeHTML(input).should == expected + end + + it "unescapes 'c' format entities" do + input = '"&'<>' + expected = '"&\'<>' + CGI.unescapeHTML(input).should == expected + end + + it "unescapes '香' format entities" do + input = '"&'<>' + expected = '"&\'<>' + CGI.unescapeHTML(input).should == expected + end + + it "leaves invalid formatted strings" do + input = '&<&>"&abcdefghijklmn' + expected = '&<&>"&abcdefghijklmn' + CGI.unescapeHTML(input).should == expected + end + + it "leaves partial invalid &# at end of string" do + input = "fooooooo&#" + CGI.unescapeHTML(input).should == input + end + + it "unescapes invalid encoding" do + input = "\xFF&" + CGI.unescapeHTML(input).should == input + end +end |
