mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
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
This commit is contained in:
parent
b3952151a1
commit
90c250920b
6 changed files with 213 additions and 91 deletions
|
|
@ -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
|
||||
|
|
|
|||
98
test/cgi/test_cgi_session.rb
Executable file
98
test/cgi/test_cgi_session.rb
Executable file
|
|
@ -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
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue