summaryrefslogtreecommitdiff
path: root/test/cgi/test_cgi_session.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/cgi/test_cgi_session.rb')
-rwxr-xr-xtest/cgi/test_cgi_session.rb59
1 files changed, 51 insertions, 8 deletions
diff --git a/test/cgi/test_cgi_session.rb b/test/cgi/test_cgi_session.rb
index 41935eeb48..c041b9cf59 100755
--- a/test/cgi/test_cgi_session.rb
+++ b/test/cgi/test_cgi_session.rb
@@ -1,6 +1,7 @@
require 'test/unit'
require 'cgi'
require 'cgi/session'
+require 'cgi/session/pstore'
require 'stringio'
class CGISessionTest < Test::Unit::TestCase
@@ -14,10 +15,10 @@ class CGISessionTest < Test::Unit::TestCase
def teardown
@environ.each do |key, val| ENV.delete(key) end
$stdout = STDOUT
- FileUtils.rm(Dir::glob(File.dirname(__FILE__)+"/session_dir/*"))
+# FileUtils.rm(Dir::glob(File.dirname(__FILE__)+"/session_dir/*"))
end
- def test_cgi_session_core
+ def test_cgi_session_filestore
@environ = {
'REQUEST_METHOD' => 'GET',
# 'QUERY_STRING' => 'id=123&id=456&id=&str=%40h+%3D%7E+%2F%5E%24%2F',
@@ -25,13 +26,16 @@ class CGISessionTest < Test::Unit::TestCase
'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"]="\x8F\xBC\x8D]".force_encoding("SJIS")
- assert_equal("value1",session["key1"])
- assert_equal("\x8F\xBC\x8D]".force_encoding("SJIS"),session["key2"])
+ session["key1"]=value1
+ session["key2"]=value2
+ assert_equal(value1,session["key1"])
+ assert_equal(value2,session["key2"])
session.close
$stdout = StringIO.new
cgi.out{""}
@@ -47,9 +51,48 @@ class CGISessionTest < Test::Unit::TestCase
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"])
+ 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