1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* 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. 


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
xibbar 2008-11-08 14:52:59 +00:00
parent 274c3b94bf
commit 26862c00e9
3 changed files with 69 additions and 2 deletions

59
test/cgi/test_cgi_session.rb Executable file
View file

@ -0,0 +1,59 @@
require 'test/unit'
require 'cgi'
require 'cgi/session'
require 'stringio'
def d(obj)
STDERR.write(obj.inspect+"\n")
end
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_core
@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',
}
ENV.update(@environ)
cgi = CGI.new
session = CGI::Session.new(cgi,"tmpdir"=>File.dirname(__FILE__)+"/session_dir")
session["key1"]="value1"
session["key2"]="\x8F\xBC\x8D]".force_encoding("SJIS")
assert_equal("value1",session["key1"])
assert_equal("\x8F\xBC\x8D]".force_encoding("SJIS"),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("\x8F\xBC\x8D]".force_encoding("SJIS"),session["key2"])
session.close
end
end