Skip to content

Commit

Permalink
minor form cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
twalpole committed Oct 23, 2018
1 parent c2e11c8 commit 55bbce1
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 17 deletions.
1 change: 1 addition & 0 deletions lib/capybara/node/matchers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ def assert_any_of_selectors(*args, wait: nil, **options, &optional_filter_block)
end
end
raise Capybara::ExpectationNotMet, res.join(' or ') if res

true
end
end
Expand Down
39 changes: 22 additions & 17 deletions lib/capybara/rack_test/form.rb
Original file line number Diff line number Diff line change
Expand Up @@ -77,27 +77,32 @@ def make_params
end

def add_input_param(field, params)
if %w[radio checkbox].include? field['type']
if field['checked']
node = Capybara::RackTest::Node.new(driver, field)
merge_param!(params, field['name'], node.value.to_s)
end
elsif %w[submit image].include? field['type']
merge_param!(params, field['name'], field['value'].to_s) if field['name']
elsif field['type'] == 'file'
name, value = field['name'].to_s, field['value'].to_s
return if name.empty?

value = case field['type']
when 'radio', 'checkbox'
return unless field['checked']

Capybara::RackTest::Node.new(driver, field).value.to_s
when 'file'
if multipart?
file = if (value = field['value']).to_s.empty?
NilUploadedFile.new
else
mime_info = MiniMime.lookup_by_filename(value)
Rack::Test::UploadedFile.new(value, mime_info&.content_type&.to_s)
end
merge_param!(params, field['name'], file)
file_to_upload(value)
else
merge_param!(params, field['name'], File.basename(field['value'].to_s))
File.basename(value)
end
else
merge_param!(params, field['name'], field['value'].to_s)
value
end
merge_param!(params, name, value)
end

def file_to_upload(filename)
if filename.empty?
NilUploadedFile.new
else
mime_info = MiniMime.lookup_by_filename(filename)
Rack::Test::UploadedFile.new(filename, mime_info&.content_type&.to_s)
end
end

Expand Down

0 comments on commit 55bbce1

Please sign in to comment.