レスポンスが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に直したら動いた。