From dba8d833c97898a94f20be10bb05b0d612cf30c4 Mon Sep 17 00:00:00 2001 From: John Bintz Date: Fri, 23 Nov 2012 13:45:17 -0500 Subject: [PATCH] cooler capybara --- lib/semantic_rails_view_helpers/capybara.rb | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/semantic_rails_view_helpers/capybara.rb b/lib/semantic_rails_view_helpers/capybara.rb index 60c0039..bc4bc85 100644 --- a/lib/semantic_rails_view_helpers/capybara.rb +++ b/lib/semantic_rails_view_helpers/capybara.rb @@ -1,8 +1,10 @@ -def find_attribute(name) +def find_attribute(name, value = nil) attribute = find("[data-field='#{name}']") yield attribute, @inputs[name] if block_given? + attribute.text.should == value if value + attribute end @@ -11,10 +13,19 @@ def find_input(name) end def set_input(name, value) + value = value.id if value.respond_to?(:id) + @inputs ||= {} @inputs[name] = value - find_input(name).set(value) + input = find_input(name) + + case input.tag_name.downcase + when 'select' + input.find("option[value='#{value}']").select_option + else + input.set(value) + end end def find_attributes(*attrs)