2019-04-23 18:58:31 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
Capybara.add_selector(:datalist_option, locator_type: [String, Symbol]) do
|
|
|
|
label 'datalist option'
|
|
|
|
visible(:all)
|
|
|
|
|
|
|
|
xpath do |locator|
|
|
|
|
xpath = XPath.descendant(:option)
|
|
|
|
xpath = xpath[XPath.string.n.is(locator.to_s) | (XPath.attr(:value) == locator.to_s)] unless locator.nil?
|
|
|
|
xpath
|
|
|
|
end
|
|
|
|
|
|
|
|
node_filter(:disabled, :boolean) { |node, value| !(value ^ node.disabled?) }
|
|
|
|
expression_filter(:disabled) { |xpath, val| val ? xpath : xpath[~XPath.attr(:disabled)] }
|
|
|
|
|
|
|
|
describe_expression_filters do |disabled: nil, **options|
|
|
|
|
desc = +''
|
|
|
|
desc << ' that is not disabled' if disabled == false
|
2019-11-28 22:41:13 +00:00
|
|
|
desc << describe_all_expression_filters(**options)
|
2019-04-23 18:58:31 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
describe_node_filters do |**options|
|
|
|
|
' that is disabled' if options[:disabled]
|
|
|
|
end
|
|
|
|
end
|