From e8968954a73a0fa3db268561500cba6154fb106a Mon Sep 17 00:00:00 2001 From: macournoyer Date: Thu, 29 Oct 2009 09:23:22 -0400 Subject: [PATCH] Add spec for last fix and actually fix it for real this time. TDD fail... --- lib/thin/request.rb | 2 +- spec/request/processing_spec.rb | 4 ++++ spec/spec_helper.rb | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/thin/request.rb b/lib/thin/request.rb index b6bf40c9..7b982dae 100644 --- a/lib/thin/request.rb +++ b/lib/thin/request.rb @@ -16,7 +16,7 @@ class Request INITIAL_BODY = '' # Force external_encoding of request's body to ASCII_8BIT - INITIAL_BODY.encode(Encoding::ASCII_8BIT) if INITIAL_BODY.respond_to?(:encode) + INITIAL_BODY.encode!(Encoding::ASCII_8BIT) if INITIAL_BODY.respond_to?(:encode) # Freeze some HTTP header names & values SERVER_SOFTWARE = 'SERVER_SOFTWARE'.freeze diff --git a/spec/request/processing_spec.rb b/spec/request/processing_spec.rb index 52027557..6a8c3935 100644 --- a/spec/request/processing_spec.rb +++ b/spec/request/processing_spec.rb @@ -42,4 +42,8 @@ big_headers = "X-Test: X\r\n" * (1024 * (80 + 32)) proc { R("GET / HTTP/1.1\r\n#{big_headers}\r\n") }.should raise_error(InvalidRequest) end + + it "should set body external encoding to ASCII_8BIT" do + Request.new.body.external_encoding.should == Encoding::ASCII_8BIT + end end \ No newline at end of file diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index b204fe92..bec8ac95 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -4,7 +4,6 @@ require 'benchmark' require 'timeout' require 'fileutils' -require 'benchmark_unit' require 'net/http' require 'socket' @@ -23,6 +22,7 @@ module Matchers class BeFasterThen def initialize(max_time) + require 'benchmark_unit' @max_time = max_time end