レスポンスがSJISのときの対応とか

WebratとCucumberを使って携帯向けサイトをテストしてたのだが、レスポンスがSJISだとうまくいかない。
今はfeatures/support/env.rbに

if ENV["MOBILE"]
  module ActionController
    class CgiResponse
      def body_with_convert
        body_without_convert.toutf8
      end
      alias_method_chain :body, :convert
    end
  end

  module Webrat
    class Field
      def escaped_value
        CGI.escape(@value.to_s.tosjis)
      end
    end
  end
end

のようにして対応している。Rails2.0.2。
環境変数で振り分けてるのは、同じフィーチャをPC向けと携帯向けでテストできるようにしているため。
CucumberのWorldで使えるヘルパーメソッドを定義するのにenv.rbで

World(Module.new{def mobile?; ENV["MOBILE"] end})

のようにしている。古いバージョンのCukeではできないやり方かもしれない。

09/11/08 追記

Rails2.3.3ではCgiResponseをResponseに直したら動いた。