52 lines
1.2 KiB
Ruby
52 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 list of added items"
|
|
".has-many-selector li.item.added"
|
|
|
|
when "the list of items"
|
|
".has-many-selector"
|
|
|
|
when "the has many selector"
|
|
".has-many-selector ul li.template"
|
|
|
|
# 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)
|