Sha256: ae68c0bc7ffaf629a8d768f19863a8878c5d424642d2e9f96f88c9f2e385e4ce

Contents?: true

Size: 1.78 KB

Versions: 1

Compression:

Stored size: 1.78 KB

Contents

module Webdrone
  class Browser
    def vrfy
      @vrfy ||= Vrfy.new self
    end
  end

  class Vrfy
    attr_accessor :a0

    def initialize(a0)
      @a0 = a0
    end

    def vrfy(text, n: 1, all: false, visible: true, scroll: false, parent: nil, attr: nil, eq: nil, contains: nil, mark: false)
      item = @a0.find.send __callee__, text, n: n, all: all, visible: visible, scroll: scroll, parent: parent
      if item.is_a? Array
        @a0.mark.mark_item item if mark
        item.each { |x| vrfy_item x, text: text, callee: __callee__, attr: attr, eq: eq, contains: contains }
      else
        @a0.mark.mark_item item if mark
        vrfy_item item, text: text, callee: __callee__, attr: attr, eq: eq, contains: contains
      end
    rescue => exception
      Webdrone.report_error(@a0, exception)
    end

    def vrfy_item(item, text: nil, callee: nil, attr: nil, eq: nil, contains: nil)
      if attr != nil
        r = item.attribute(attr) == eq if eq != nil
        r = item.attribute(attr).include? contains if contains != nil
      elsif eq != nil
        r = item.text == eq
      elsif contains != nil
        r = item.text.include? contains
      end
      if r == false
        targ = "eq: [#{eq}]" if eq
        targ = "contains: [#{contains}]" if contains
        if attr != nil
          raise "VRFY: #{callee} [#{text}] attr [#{attr}] value [#{item.attribute(attr)}] does not comply #{targ}"
        else
          raise "VRFY: #{callee} [#{text}] text value [#{item.text}] does not comply #{targ}"
        end
      end
    end

    alias_method :id,     :vrfy
    alias_method :css,    :vrfy
    alias_method :link,   :vrfy
    alias_method :button, :vrfy
    alias_method :on,     :vrfy
    alias_method :option, :vrfy
    alias_method :xpath,  :vrfy

    protected :vrfy, :vrfy_item
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
webdrone-1.7.8 lib/webdrone/vrfy.rb