Sha256: ecd96de21f80b50c4182fd66ec77aa46f1fc26cef5653a5af352c2aa83f4b0a8

Contents?: true

Size: 1.94 KB

Versions: 9

Compression:

Stored size: 1.94 KB

Contents

module TestCentricity
  class List < UIElement
    attr_accessor :list_item

    def initialize(name, parent, locator, context)
      super
      @type = :list
      define_list_elements({ :list_item => 'li' })
    end

    def define_list_elements(element_spec)
      element_spec.each do |element, value|
        case element
        when :list_item
          @list_item = value
        else
          raise "#{element} is not a recognized list element"
        end
      end
    end

    def get_list_items(element_spec = nil)
      define_list_elements(element_spec) unless element_spec.nil?
      obj, = find_element
      object_not_found_exception(obj, nil)
      obj.all(@list_item).collect(&:text)
    end

    def get_list_item(index, visible = true)
      if visible
        items = get_list_items
      else
        items = get_all_list_items
      end
      items[index - 1]
    end

    def get_item_count
      obj, = find_element
      object_not_found_exception(obj, nil)
      obj.all(@list_item).count
    end

    def get_all_list_items(element_spec = nil)
      define_list_elements(element_spec) unless element_spec.nil?
      obj, = find_element
      object_not_found_exception(obj, nil)
      obj.all(@list_item, :visible => :all).collect(&:text)
    end

    def get_all_items_count
      obj, = find_element
      object_not_found_exception(obj, nil)
      obj.all(@list_item, :visible => :all).count
    end

    def verify_list_items(expected, enqueue = false)
      actual = get_list_items
      enqueue ?
          ExceptionQueue.enqueue_assert_equal(expected, actual, "Expected list #{object_ref_message}") :
          assert_equal(expected, actual, "Expected list #{object_ref_message} to be #{expected} but found #{actual}")
    end

    def get_list_row_locator(row)
      case @locator_type
      when :xpath
        "#{@locator}/#{@list_item}[#{row}]"
      when :css
        "#{@locator} > #{@list_item}:nth-of-type(#{row})"
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
testcentricity_web-2.3.16 lib/testcentricity_web/web_elements/list.rb
testcentricity_web-2.3.15.1 lib/testcentricity_web/web_elements/list.rb
testcentricity_web-2.3.15 lib/testcentricity_web/web_elements/list.rb
testcentricity_web-2.3.14.1 lib/testcentricity_web/web_elements/list.rb
testcentricity_web-2.3.14 lib/testcentricity_web/web_elements/list.rb
testcentricity-2.3.13 lib/testcentricity/web_elements/list.rb
testcentricity_web-2.3.12 lib/testcentricity_web/web_elements/list.rb
testcentricity_web-2.3.11 lib/testcentricity_web/elements/list.rb
testcentricity_web-2.3.10 lib/testcentricity_web/elements/list.rb