module Selectivity::Rspec::FeatureHelpers
Public Instance Methods
selectivity_select(value, *args)
click to toggle source
# File lib/selectivity/rspec.rb, line 5 def selectivity_select(value, *args) options = args.extract_options! fail('Selectivity input not set!') unless options.has_key?(:from) from = options.delete(:from) input = find_selectivity_input(from, options) items = _selectivity_multiselect?(input) ? args.unshift(value).uniq : [value] items.each do |item| _selectivity_select!(input, item) end end
selectivity_unselect(value, *args)
click to toggle source
# File lib/selectivity/rspec.rb, line 19 def selectivity_unselect(value, *args) options = args.extract_options! fail('Selectivity input not set!') unless options.has_key?(:from) from = options.delete(:from) input = find_selectivity_input(from, options) items = _selectivity_multiselect?(input) ? args.unshift(value).uniq : [value] items.each do |item| if _selectivity_multiselect?(input) _selectivity_unselect_multiple!(input, item) else _selectivity_unselect_single!(input) end end end
Private Instance Methods
_selectivity_multiselect?(input)
click to toggle source
# File lib/selectivity/rspec.rb, line 53 def _selectivity_multiselect?(input) input.first('.selectivity-multiple-input-container').present? end
_selectivity_select!(input, item)
click to toggle source
# File lib/selectivity/rspec.rb, line 57 def _selectivity_select!(input, item) input.click within 'div.selectivity-dropdown' do element = if page.driver.class.name =~ /poltergeist/i find('div.selectivity-result-item', text: item) else find(:xpath, ".//div[contains(@class,'selectivity-result-item')][text()='#{item}']") end if element.visible? page.evaluate_script("$('div.selectivity-result-item:contains(#{item})').trigger('click')") end end end
_selectivity_unselect_multiple!(input, value)
click to toggle source
# File lib/selectivity/rspec.rb, line 77 def _selectivity_unselect_multiple!(input, value) input.first('.selectivity-multiple-selected-item', text: value) .first('.selectivity-multiple-selected-item-remove') .click end
_selectivity_unselect_single!(input)
click to toggle source
# File lib/selectivity/rspec.rb, line 73 def _selectivity_unselect_single!(input) input.first('.selectivity-single-selected-item-remove').click end
find_selectivity_input(from, options)
click to toggle source
# File lib/selectivity/rspec.rb, line 39 def find_selectivity_input(from, options) label = first(:xpath, ".//label[contains(., '#{from}')]", options) if label.present? find(:div, "##{label[:for]}", options) else target = first(:xpath, ".//div[contains(., '#{from}')]", options) || first(:div, from, options) if target[:class].include?('selectivity-input') target else target.first('.selectivity-input') end end end