Skip to content

Commit

Permalink
Merge branch 'master' of git://github.com/jsuchal/webrat into jsuchal…
Browse files Browse the repository at this point in the history
…/master
  • Loading branch information
brynary committed Oct 14, 2008
2 parents a73cc5b + 9d3c60f commit d7a9447
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 37 deletions.
43 changes: 11 additions & 32 deletions lib/webrat/core/form.rb
Expand Up @@ -29,27 +29,17 @@ def find_select_option(option_text)
end

def find_button(value = nil)
return fields_by_type([ButtonField]).first if value.nil?

possible_buttons = fields_by_type([ButtonField])

possible_buttons.each do |possible_button|
return possible_button if possible_button.matches_value?(value)
end

nil
return fields_by_type([ButtonField]).first if value.nil?
possible_buttons = fields_by_type([ButtonField])
possible_buttons.detect { |possible_button| possible_button.matches_value?(value) }
end

def fields
return @fields if @fields

@fields = []

(@element / "button, input, textarea, select").each do |field_element|
@fields << Field.class_for_element(field_element).new(self, field_element)
@fields = (@element / "button, input, textarea, select").collect do |field_element|
Field.class_for_element(field_element).new(self, field_element)
end

@fields
end

def submit
Expand All @@ -59,29 +49,18 @@ def submit
protected

def find_field_by_id(possible_fields, id)
possible_fields.each do |possible_field|
return possible_field if possible_field.matches_id?(id)
end

nil
possible_fields.detect { |possible_field| possible_field.matches_id?(id) }
end

def find_field_by_name(possible_fields, name)
possible_fields.each do |possible_field|
return possible_field if possible_field.matches_name?(name)
end

nil
possible_fields.detect { |possible_field| possible_field.matches_name?(name) }
end

def find_field_by_label(possible_fields, label)
matching_fields = []

possible_fields.each do |possible_field|
matching_fields << possible_field if possible_field.matches_label?(label)
end

matching_fields.sort_by { |f| f.label_text.length }.first
matching_fields = possible_fields.select do |possible_field|
possible_field.matches_label?(label)
end
matching_fields.min { |a, b| a.label_text.length <=> b.label_text.length }
end

def fields_by_type(field_types)
Expand Down
8 changes: 3 additions & 5 deletions lib/webrat/core/scope.rb
Expand Up @@ -205,14 +205,12 @@ def find_button(value)
end

def find_link(text, selector = nil)
matching_links = []

links_within(selector).each do |possible_link|
matching_links << possible_link if possible_link.matches_text?(text)
matching_links = links_within(selector).select do |possible_link|
possible_link.matches_text?(text)
end

if matching_links.any?
matching_links.sort_by { |l| l.text.length }.first
matching_links.min { |a, b| a.text.length <=> b.text.length }
else
flunk("Could not find link with text #{text.inspect}")
end
Expand Down

0 comments on commit d7a9447

Please sign in to comment.