engine/features/support/selectors.rb

55 lines
1.2 KiB
Ruby

module HtmlSelectorsHelpers
# Maps a name to a selector. Used primarily by the
#
# When /^(.+) within (.+)$/ do |step, scope|
#
# step definitions in web_steps.rb
#
def selector_for(locator)
case locator
when 'the page'
'html > body'
when 'the main form'
'form.formtastic'
when 'the dialog popup'
'.ui-dialog'
when 'the list of entries'
'li.input.relationship'
when 'the role'
'.role'
when 'the submit button'
'form.formtastic #local-actions-bottom-bar input[type=submit]'
# Add more mappings here.
# Here is an example that pulls values out of the Regexp:
#
# when /^the (notice|error|info) flash$/
# ".flash.#{$1}"
# You can also return an array to use a different selector
# type, like:
#
# when /the header/
# [:xpath, "//header"]
# This allows you to provide a quoted selector as the scope
# for "within" steps as was previously the default for the
# web steps:
when /^"(.+)"$/
$1
else
raise "Can't find mapping from \"#{locator}\" to a selector.\n" +
"Now, go and add a mapping in #{__FILE__}"
end
end
end
World(HtmlSelectorsHelpers)