summaryrefslogtreecommitdiff
path: root/test/cgi/test_cgi_util.rb
diff options
context:
space:
mode:
authorxibbar <xibbar@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-30 05:34:02 +0000
committerxibbar <xibbar@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-30 05:34:02 +0000
commit1976ef38a7630addb63689053b6dc1d4889d934d (patch)
tree421dc7a33bfe1ca30362f58fdc76ed6c352828a2 /test/cgi/test_cgi_util.rb
parent3ca25b5a292edfee968d64aac686b46265cad5b5 (diff)
* lib/cgi/util.rb (CGI::unescape): support encoding option.
* lib/cgi/cookie.rb (CGI::Cookie.parse): fix for the encoded value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/cgi/test_cgi_util.rb')
-rw-r--r--test/cgi/test_cgi_util.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/cgi/test_cgi_util.rb b/test/cgi/test_cgi_util.rb
new file mode 100644
index 0000000..ec0744d
--- /dev/null
+++ b/test/cgi/test_cgi_util.rb
@@ -0,0 +1,32 @@
+require 'test/unit'
+require 'cgi'
+require 'stringio'
+
+
+class CGIUtilTest < Test::Unit::TestCase
+
+
+ def setup
+ ENV['REQUEST_METHOD'] = 'GET'
+ @str1="&<>\" \xE3\x82\x86\xE3\x82\x93\xE3\x82\x86\xE3\x82\x93"
+ @str1.force_encoding("UTF-8") if RUBY_VERSION>="1.9"
+ end
+
+ def teardown
+ %W[REQUEST_METHOD SCRIPT_NAME].each do |name|
+ ENV.delete(name)
+ end
+ end
+
+
+ def test_cgi_escape
+ assert_equal('%26%3C%3E%22+%E3%82%86%E3%82%93%E3%82%86%E3%82%93', CGI::escape(@str1))
+ assert_equal('%26%3C%3E%22+%E3%82%86%E3%82%93%E3%82%86%E3%82%93'.ascii_only?, CGI::escape(@str1).ascii_only?) if RUBY_VERSION>="1.9"
+ end
+
+ def test_cgi_unescape
+ assert_equal(@str1, CGI::unescape('%26%3C%3E%22+%E3%82%86%E3%82%93%E3%82%86%E3%82%93'))
+ assert_equal(@str1.encoding, CGI::unescape('%26%3C%3E%22+%E3%82%86%E3%82%93%E3%82%86%E3%82%93').encoding) if RUBY_VERSION>="1.9"
+ end
+
+end