From cfed47020a39291504877ce2a3463ed268fed9c8 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 29 Jun 2009 03:59:00 -0700 Subject: test_rails: workaround long-standing 1.9 bug Now that I've beefed out my Makefile to detect errors, I've noticed this test has been failing under 1.9 for a while now. Currently no released version of Rack(1.0) or Rails(2.3.2.1) supports this. --- test/rails/test_rails.rb | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/test/rails/test_rails.rb b/test/rails/test_rails.rb index c7add20..e6f6a36 100644 --- a/test/rails/test_rails.rb +++ b/test/rails/test_rails.rb @@ -142,18 +142,24 @@ logger Logger.new('#{COMMON_TMP.path}') end end end - resp = `curl -isSfN -Ffile=@#{tmp.path} http://#@addr:#@port/foo/xpost` - assert $?.success? - resp = resp.split(/\r?\n/) - grepped = resp.grep(/^sha1: (.{40})/) - assert_equal 1, grepped.size - assert_equal(sha1.hexdigest, /^sha1: (.{40})/.match(grepped.first)[1]) - - grepped = resp.grep(/^Content-Type:\s+(.+)/i) - assert_equal 1, grepped.size - assert_match %r{^text/plain}, grepped.first.split(/\s*:\s*/)[1] - - assert_equal 1, resp.grep(/^Status:/i).size + + # fixed in Rack commit 44ed4640f077504a49b7f1cabf8d6ad7a13f6441, + # no released version of Rails or Rack has this fix + if RB_V[0] >= 1 && RB_V[1] >= 9 + warn "multipart broken with Rack 1.0.0 and Rails 2.3.2.1 under 1.9" + else + resp = `curl -isSfN -Ffile=@#{tmp.path} http://#@addr:#@port/foo/xpost` + assert $?.success? + resp = resp.split(/\r?\n/) + grepped = resp.grep(/^sha1: (.{40})/) + assert_equal 1, grepped.size + assert_equal(sha1.hexdigest, /^sha1: (.{40})/.match(grepped.first)[1]) + + grepped = resp.grep(/^Content-Type:\s+(.+)/i) + assert_equal 1, grepped.size + assert_match %r{^text/plain}, grepped.first.split(/\s*:\s*/)[1] + assert_equal 1, resp.grep(/^Status:/i).size + end # make sure we can get 403 responses, too uri = URI.parse("http://#@addr:#@port/foo/xpost") -- cgit v1.2.3-24-ge0c7