When a page contains a file field and no file is uploaded, then
a parameter is generated anyway. This was also the problem with
rack testing some time ago (see http://rack.lighthouseapp.com/projects/22435/tickets/37).
Here is a minimal patch that solves the problem for webrat
(tests should of course be made
--- /var/lib/gems/1.8/gems/webrat-0.7.1/lib/webrat/core/elements/form.rb.org 2010-05-26 21:11:16.978887686 +0200
+++ /var/lib/gems/1.8/gems/webrat-0.7.1/lib/webrat/core/elements/form.rb 2010-05-26 21:39:40.728106794 +0200
@@ -47,6 +47,7 @@
fields.each do |field|
next if field.to_query_string.nil?
+ next if field.is_a?(FileField) && field.test_uploaded_file.blank?
replaces.merge!({field.digest_value => field.test_uploaded_file}) if field.is_a?(FileField)
query_string << field.to_query_string
end
Jarl