意図がわからん
webrat0.5.1に以下のようなコードがあります。
# webrat-0.5.1/lib/webrat/core/elements/field.rb module Webrat class Field def escaped_value CGI.escape([*@value].first.to_s) end end end
フィールド値(@value)をCGIパラメータに変換してるんだと思いますが、この中の
[*@value]
というコードが謎です。実験してみると、@valueが改行を含むStringのとき、行が分割された配列ができてしまいます。
[*"a\nb\nc"] # => ["a\n", "b\n", "c"]
このため、テキストエリアに複数行のテキストを入力するようなテストをすると、firstメソッドにより最初の一行しか入ってくれません。
なんでこうなってるんでしょう??
仕方ないのでステップ定義とかに場当たり的に下記のようなコードを書いてやり過ごしています。
module FixedToA def to_a [self] end end Given /hogehoge/ do fill_in "本文", :with => @body = <<-EOT.extend(FixedToA) 一段落目 二段落目 EOT end