about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/mongrel/cgi.rb6
-rw-r--r--test/test_cgi_wrapper.rb28
2 files changed, 31 insertions, 3 deletions
diff --git a/lib/mongrel/cgi.rb b/lib/mongrel/cgi.rb
index fa5c9c4..4173bde 100644
--- a/lib/mongrel/cgi.rb
+++ b/lib/mongrel/cgi.rb
@@ -109,10 +109,10 @@ module Mongrel
         end
         
         @head.delete('cookie')
-
-        # @output_cookies seems to never be used, but we'll process it just in case
-        @output_cookies.each {|c| to['Set-Cookie'] = c.to_s } if @output_cookies
       end
+      
+      # @output_cookies seems to never be used, but we'll process it just in case
+      @output_cookies.each {|c| to['Set-Cookie'] = c.to_s } if @output_cookies
     end
     
     # The dumb thing is people can call header or this or both and in any order.
diff --git a/test/test_cgi_wrapper.rb b/test/test_cgi_wrapper.rb
new file mode 100644
index 0000000..0db0655
--- /dev/null
+++ b/test/test_cgi_wrapper.rb
@@ -0,0 +1,28 @@
+require 'test/unit'
+require 'rubygems'
+require 'mongrel'
+require 'cgi/session'
+
+class MockHttpRequest
+  attr_reader :body
+
+  def params
+    return { 'REQUEST_METHOD' => 'GET'}
+  end
+end
+
+class CGIWrapperTest < Test::Unit::TestCase
+  
+  def test_set_cookies_output_cookies
+    request = MockHttpRequest.new
+    response = nil # not needed for this test
+    output_headers = {}
+    
+    cgi = Mongrel::CGIWrapper.new(request, response)
+    session = CGI::Session.new(cgi, 'database_manager' => CGI::Session::MemoryStore)
+    cgi.send_cookies(output_headers)
+    
+    assert(output_headers.has_key?("Set-Cookie"))
+    assert_equal("_session_id="+session.session_id+"; path=", output_headers["Set-Cookie"])
+  end
+end \ No newline at end of file