55 lines
1.2 KiB
Ruby
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)
|