[前][次][番号順一覧][スレッド一覧]

ruby-changes:7159

From: gotoyuzo <ko1@a...>
Date: Mon, 18 Aug 2008 02:33:44 +0900 (JST)
Subject: [ruby-changes:7159] Ruby:r18676 (ruby_1_8): * lib/webrick/cgi.rb (WEBrick::CGI::Socket#eof?): added lacked method.

gotoyuzo	2008-08-18 02:32:53 +0900 (Mon, 18 Aug 2008)

  New Revision: 18676

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18676

  Log:
    * lib/webrick/cgi.rb (WEBrick::CGI::Socket#eof?): added lacked method.

  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/lib/webrick/cgi.rb
    branches/ruby_1_8/test/webrick/test_cgi.rb

Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 18675)
+++ ruby_1_8/ChangeLog	(revision 18676)
@@ -1,3 +1,7 @@
+Mon Aug 18 02:25:11 2008  GOTOU Yuuzou  <gotoyuzo@n...>
+
+	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#eof?): added lacked method.
+
 Sun Aug 17 00:06:10 2008  Tanaka Akira  <akr@f...>
 
 	* configure.in (rb_cv_broken_glibc_ia64_erfc): renamed from
Index: ruby_1_8/lib/webrick/cgi.rb
===================================================================
--- ruby_1_8/lib/webrick/cgi.rb	(revision 18675)
+++ ruby_1_8/lib/webrick/cgi.rb	(revision 18676)
@@ -208,6 +208,10 @@
       def each
         input.each{|line| yield(line) }
       end
+
+      def eof?
+        input.eof?
+      end
   
       def <<(data)
         @out_port << data
Index: ruby_1_8/test/webrick/test_cgi.rb
===================================================================
--- ruby_1_8/test/webrick/test_cgi.rb	(revision 18675)
+++ ruby_1_8/test/webrick/test_cgi.rb	(revision 18676)
@@ -3,9 +3,9 @@
 require "test/unit"
 
 class TestWEBrickCGI < Test::Unit::TestCase
-  def test_cgi
-    accepted = started = stopped = 0
-    requested0 = requested1 = 0
+  CRLF = "\r\n"
+
+  def start_cgi_server(&block)
     config = {
       :CGIInterpreter => TestWEBrick::RubyBin,
       :DocumentRoot => File.dirname(__FILE__),
@@ -15,6 +15,12 @@
       config[:CGIPathEnv] = ENV['PATH'] # runtime dll may not be in system dir.
     end
     TestWEBrick.start_httpserver(config){|server, addr, port|
+       block.call(server, addr, port)
+    }
+  end
+
+  def test_cgi
+    start_cgi_server{|server, addr, port|
       http = Net::HTTP.new(addr, port)
       req = Net::HTTP::Get.new("/webrick.cgi")
       http.request(req){|res| assert_equal("/webrick.cgi", res.body)}
@@ -68,4 +74,21 @@
       }
     }
   end
+
+  def test_bad_request
+    start_cgi_server{|server, addr, port|
+      sock = TCPSocket.new(addr, port)
+      begin
+        sock << "POST /webrick.cgi HTTP/1.0" << CRLF
+        sock << "Content-Type: application/x-www-form-urlencoded" << CRLF
+        sock << "Content-Length: 1024" << CRLF
+        sock << CRLF
+        sock << "a=1&a=2&b=x"
+        sock.close_write
+        assert_match(%r{\AHTTP/\d.\d 400 Bad Request}, sock.read)
+      ensure
+        sock.close
+      end
+    }
+  end
 end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]