class Scoutui::Commands::Highlight

Public Instance Methods

_highlight(obj, e=nil) click to toggle source
# File lib/scoutui/commands/highlight.rb, line 7
def _highlight(obj, e=nil)
  _rc=false

  Scoutui::Logger::LogMgr.instance.command.info __FILE__ + (__LINE__).to_s + " highlight => #{obj}"
  if !obj.nil?

    begin

      if e.is_a?(Hash) && e.has_key?('page') && e['page'].has_key?('style')
        style=e['page']['style']
        obj=Scoutui::Base::QBrowser.highlight(@drv, obj, style)

      elsif e.is_a?(Hash) && e.has_key?(:color)

        # TODO: refactor with q_browser.highlight
        if e[:color].match(/blue/i)
          _style={"color" => 'rgb(0, 0, 255)', "border" => 2}
        elsif e[:color].match(/red/i)
          _style={"color" => 'rgb(255, 0, 0)', "border" => 2}
        elsif e[:color].match(/yellow/i)
          _style={"color" => 'rgb(255, 255, 0)', "border" => 2}
        elsif e[:color].match(/green/i)
          _style={"color" => 'rgb(0, 255, 0)', "border" => 2}
        elsif e[:color].match(/gray/i)
          _style={"color" => 'rgb(128, 128, 128)', "border" => 2}
        end

        obj=Scoutui::Base::QBrowser.highlight(@drv, obj, _style)
      else
        obj=Scoutui::Base::QBrowser.highlight(@drv, obj)
      end

      _rc=true


    rescue => ex
      Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " Error during processing: #{$!}"
      Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
    end

  end

  _rc
end
execute(drv, e=nil) click to toggle source
# File lib/scoutui/commands/highlight.rb, line 52
    def execute(drv, e=nil)
      rc=true
      _color=nil
      _req = Scoutui::Utils::TestUtils.instance.getReq()

      Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Highlight.execute(#{@cmd}), req:#{_req}"

      @drv=drv if !drv.nil?

      begin

        locators=[]

        if @cmd.match(/highlight\s*\((.*)\)([(\.blue|\.gray|\.green|\.red|\.yellow)]*)/)
#       if @cmd.match(/highlight\s*\((.*)\)/)
          _m = @cmd.match(/highlight\s*\((.*)\)/)
          _m = @cmd.match(/highlight\s*\((.*)\)([(\.blue|\.gray|\.green|\.red|\.yellow)]*)/)
          locators << _m[1].to_s


          if !(_m[2].nil? || _m[2].empty?)
            _color=_m[2].to_s
          end

        elsif e.is_a?(Hash) && e.has_key?('page') && e['page'].has_key?('locators')
          locators = e['page']['locators']
        end

        Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight.locators => #{locators}"

        locators.each do |elt|
          q=nil

          # TODO: _parsed = Scoutui::Base::QBrowser.parseLocator(elt)

          if elt.is_a?(String) && elt=='focused'
            obj=@drv.switch_to.active_element

          elsif elt.is_a?(String) && elt.match((/^\s*([(frame\([^\(]*?\)\.)]*)\.(locator\((.*)\))\s*$/))
            obj=Scoutui::Base::QBrowser.getElement(@drv, elt, Scoutui::Commands::Utils.instance.getFrameSearch(),  Scoutui::Commands::Utils.instance.getTimeout)
          else

            q=Scoutui::Base::Assertions.instance._parseFrameLocator(elt)

            if q.has_key?('frame')
              Scoutui::Commands::Utils.instance.setEnableFrameSearch(q['frame'])
              elt = q['locator']
            end


            _loc = Scoutui::Base::UserVars.instance.normalize(elt)

            obj = Scoutui::Base::QBrowser.findElement(@drv,
                                                      _loc,
                                                      Scoutui::Commands::Utils.instance.getFrameSearch(),
                                                      Scoutui::Commands::Utils.instance.getTimeout)
          end


          if !obj.is_a?(Selenium::WebDriver::Element)
            Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " highlight : unable to find #{_loc}"
          end

          if _color.nil?
            _rc = _highlight(obj, e)
          else
            _rc = _highlight(obj, { :color => _color })
          end


          Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight(#{e}) : #{_rc}"

          if q && q.has_key?('frame')
            @drv.switch_to.default_content
            Scoutui::Commands::Utils.instance.resetFrameSearch
          end

          rc = rc && _rc

          Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ||| assert?  => #{assert?.to_s} : _rc:#{_rc}    rc:#{rc}"

          if assert?
            Testmgr::TestReport.instance.getReq(_req).testcase('highlight').add(!obj.nil?, "Verify object #{elt} to highlight exists : #{obj.class.to_s}")
            Testmgr::TestReport.instance.getReq(_req).testcase('highlight').add(_rc, "Verify highlight #{_rc} performed for #{elt}")
          else
            Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight(#{elt} : #{obj.class.to_s}"
          end


          Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight(#{elt.to_s} : #{_rc}"

        end

      rescue => ex
        Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " Error during processing: #{$!}"
        Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
      end

      Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight.rc ==> #{rc}"
      setResult(rc)
    end