diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-11-11 11:01:41 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-11-11 11:01:41 +0000 |
commit | 90c250920b187c4ccef84bddd1562ae7fe62b92b (patch) | |
tree | bd26f498dd95a10d877d07060077976ebd1af89f /test | |
parent | b3952151a12709b15411d86232dd98991d8cb232 (diff) |
merges r20154-20158, r20161 from trunk into ruby_1_9_1.
* lib/cgi/session/pstore.rb: fix indentation.
* lib/cgi/session.rb (FileStore): use marshalized data.
* test/cgi/session_dir: add a session directory in test.
* test/cgi/test_cgi_session.rb: add a test.
* test/cgi/test_cgi_multipart.rb: 1.9 support.
* test/cgi/test_cgi_session.rb: ditto.
* test/cgi/test_cgi_tag_helper.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rwxr-xr-x | test/cgi/test_cgi_multipart.rb | 6 | ||||
-rwxr-xr-x | test/cgi/test_cgi_session.rb | 98 | ||||
-rwxr-xr-x | test/cgi/test_cgi_tag_helper.rb | 2 |
3 files changed, 104 insertions, 2 deletions
diff --git a/test/cgi/test_cgi_multipart.rb b/test/cgi/test_cgi_multipart.rb index 34f077e9c5..47a41f6488 100755 --- a/test/cgi/test_cgi_multipart.rb +++ b/test/cgi/test_cgi_multipart.rb @@ -135,7 +135,11 @@ class CGIMultipartTest < Test::Unit::TestCase ENV['CONTENT_LENGTH'] = input.length.to_s ENV['REQUEST_METHOD'] = 'POST' ## set $stdin - tmpfile = Tempfile.new(self.name, :binmode => true) + tmpfile = if RUBY_VERSION >="1.9" + Tempfile.new(self.name, :binmode => true) + else + Tempfile.new(self.name) + end tmpfile << input tmpfile.rewind() $stdin = tmpfile diff --git a/test/cgi/test_cgi_session.rb b/test/cgi/test_cgi_session.rb new file mode 100755 index 0000000000..c041b9cf59 --- /dev/null +++ b/test/cgi/test_cgi_session.rb @@ -0,0 +1,98 @@ +require 'test/unit' +require 'cgi' +require 'cgi/session' +require 'cgi/session/pstore' +require 'stringio' + +class CGISessionTest < Test::Unit::TestCase + + + def setup + FileUtils.rm(Dir::glob(File.dirname(__FILE__)+"/session_dir/*")) + end + + + def teardown + @environ.each do |key, val| ENV.delete(key) end + $stdout = STDOUT +# FileUtils.rm(Dir::glob(File.dirname(__FILE__)+"/session_dir/*")) + end + + def test_cgi_session_filestore + @environ = { + 'REQUEST_METHOD' => 'GET', + # 'QUERY_STRING' => 'id=123&id=456&id=&str=%40h+%3D%7E+%2F%5E%24%2F', + # 'HTTP_COOKIE' => '_session_id=12345; name1=val1&val2;', + 'SERVER_SOFTWARE' => 'Apache 2.2.0', + 'SERVER_PROTOCOL' => 'HTTP/1.1', + } + value1="value1" + value2="\x8F\xBC\x8D]" + value2.force_encoding("SJIS") if RUBY_VERSION>="1.9" + ENV.update(@environ) + cgi = CGI.new + session = CGI::Session.new(cgi,"tmpdir"=>File.dirname(__FILE__)+"/session_dir") + session["key1"]=value1 + session["key2"]=value2 + assert_equal(value1,session["key1"]) + assert_equal(value2,session["key2"]) + session.close + $stdout = StringIO.new + cgi.out{""} + + @environ = { + 'REQUEST_METHOD' => 'GET', + # 'HTTP_COOKIE' => "_session_id=#{session_id}", + 'QUERY_STRING' => "_session_id=#{session.session_id}", + 'SERVER_SOFTWARE' => 'Apache 2.2.0', + 'SERVER_PROTOCOL' => 'HTTP/1.1', + } + ENV.update(@environ) + cgi = CGI.new + session = CGI::Session.new(cgi,"tmpdir"=>File.dirname(__FILE__)+"/session_dir") + $stdout = StringIO.new + assert_equal(value1,session["key1"]) + assert_equal(value2,session["key2"]) + session.close + + end + def test_cgi_session_pstore + @environ = { + 'REQUEST_METHOD' => 'GET', + # 'QUERY_STRING' => 'id=123&id=456&id=&str=%40h+%3D%7E+%2F%5E%24%2F', + # 'HTTP_COOKIE' => '_session_id=12345; name1=val1&val2;', + 'SERVER_SOFTWARE' => 'Apache 2.2.0', + 'SERVER_PROTOCOL' => 'HTTP/1.1', + } + value1="value1" + value2="\x8F\xBC\x8D]" + value2.force_encoding("SJIS") if RUBY_VERSION>="1.9" + ENV.update(@environ) + cgi = CGI.new + session = CGI::Session.new(cgi,"tmpdir"=>File.dirname(__FILE__)+"/session_dir","database_manager"=>CGI::Session::PStore) + session["key1"]=value1 + session["key2"]=value2 + assert_equal(value1,session["key1"]) + assert_equal(value2,session["key2"]) + session.close + $stdout = StringIO.new + cgi.out{""} + + @environ = { + 'REQUEST_METHOD' => 'GET', + # 'HTTP_COOKIE' => "_session_id=#{session_id}", + 'QUERY_STRING' => "_session_id=#{session.session_id}", + 'SERVER_SOFTWARE' => 'Apache 2.2.0', + 'SERVER_PROTOCOL' => 'HTTP/1.1', + } + ENV.update(@environ) + cgi = CGI.new + session = CGI::Session.new(cgi,"tmpdir"=>File.dirname(__FILE__)+"/session_dir","database_manager"=>CGI::Session::PStore) + $stdout = StringIO.new + assert_equal(value1,session["key1"]) + assert_equal(value2,session["key2"]) + session.close + + + end +end diff --git a/test/cgi/test_cgi_tag_helper.rb b/test/cgi/test_cgi_tag_helper.rb index f28146a026..6e726b93a3 100755 --- a/test/cgi/test_cgi_tag_helper.rb +++ b/test/cgi/test_cgi_tag_helper.rb @@ -318,7 +318,7 @@ class CGITagHelperTest < Test::Unit::TestCase assert_match(/^<INPUT .*TYPE="checkbox".*>bb<INPUT .*TYPE="checkbox".*>dd$/,str) assert_match(/^<INPUT .*NAME="foo".*>bb<INPUT .*NAME="foo".*>dd$/,str) assert_match(/^<INPUT .*>bb<INPUT .*CHECKED.*>dd$/,str) - assert_match(/<INPUT .*TYPE="text".*>/,cgi.text_field(:name=>"name",:value=>"value")) + assert_match(/<INPUT .*TYPE="text".*>/,cgi.text_field(:name=>"name",:value=>"value")) if RUBY_VERSION>="1.9" if RUBY_VERSION>="1.9" str=cgi.radio_group("foo",["aa","bb"],["cc","dd",false]) assert_match(/^<INPUT .*VALUE="aa".*>bb<INPUT .*VALUE="cc".*>dd$/,str) |