class Scoutui::Commands::MouseOver

Public Instance Methods

_whenHovered(page_elt) click to toggle source
# File lib/scoutui/commands/mouse_over.rb, line 7
  def _whenHovered(page_elt)

    if page_elt.is_a?(Hash) && page_elt.has_key?('when_hovered')
      Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Verify #{page_elt['when_hovered']}"

      page_elt['when_hovered'].each do |_elt|

        _r = _elt.keys[0].to_s

        _pg = _elt[_r]

        #    _c = Scoutui::Commands::VerifyElement.new("verifyelement(" + _elt + ")")
        #    _c.execute(@drv)

        Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " processPageElement(#{_pg})"


        if _pg.is_a?(Array)
          _pg.each do |_pg2|
            isVisible=Scoutui::Base::Assertions.instance.isVisible(@drv, _pg2, _r)
          end
        elsif _pg.is_a?(String)
          isVisible=Scoutui::Base::Assertions.instance.isVisible(@drv, _pg, _r)
        else
          Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " => #{_pg}"
        end

#       Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " IsVisible #{isVisible} - PAUSE"; gets

      end

    end

  end
execute(drv=nil) click to toggle source
# File lib/scoutui/commands/mouse_over.rb, line 43
def execute(drv=nil)
  _rc=false
  _req = Scoutui::Utils::TestUtils.instance.getReq()

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

  @drv=drv if !drv.nil?

  begin
    _locator = @cmd.match(/^\s*mouseover\s*\((.*)\)/)[1].to_s.strip
    _locator = Scoutui::Base::UserVars.instance.normalize(_locator)

    obj = Scoutui::Base::QBrowser.getObject(@drv, _locator, Scoutui::Commands::Utils.instance.getTimeout)

    if !obj.nil?
      @drv.action.move_to(obj).perform
      _rc=true


      page_elt = Scoutui::Utils::TestUtils.instance.getPageElement(_locator)
      Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " PageElement(#{_locator}) => #{page_elt}"
      _whenHovered(page_elt)


      #------------

      appModel = Scoutui::Utils::TestUtils.instance.getAppModel()

      triggers = appModel.itemize('visible_when', 'mouseover', _locator)
      Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " triggers => #{triggers}"

      if !(triggers.nil? || triggers.empty?)

        triggers.each do |_pageObj|
          _tObj=nil

          if !_pageObj.match(/^page\([\w\d]+\)/).nil?
  #         _tObj = Scoutui::Base::VisualTestFramework.processPageElement(@drv, 'peter', _pageObj)

            _tLocator = Scoutui::Utils::TestUtils.instance.getPageElement(_pageObj)
            _tObj = Scoutui::Base::QBrowser.getFirstObject(@drv, _tLocator['locator'])  # TODO: Avoid using getFirstObject

          else
            _tObj = Scoutui::Base::QBrowser.getFirstObject(@drv, _pageObj, Scoutui::Commands::Utils.instance.getTimeout())  # TODO: Avoid using getFirstObject
          end

          Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " HIT #{_pageObj} => #{!_tObj.nil?}"

          Scoutui::Logger::LogMgr.instance.asserts.info "Verify #{_pageObj} is visible when mouseover #{_locator} - #{!_tObj.nil?.to_s}"
          Testmgr::TestReport.instance.getReq(_req).get_child('mouseover').add(!_tObj.nil?, "Verify #{_pageObj} is visible when mouseover #{_locator}")
        end

      end

    end

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

  Testmgr::TestReport.instance.getReq(_req).testcase('mouseover').add(!obj.nil?, "Verify object #{_locator} to mouseover exists : #{obj.class.to_s}")
  Testmgr::TestReport.instance.getReq(_req).testcase('mousseover').add(_rc, "Verify mouseover #{_rc} performed for #{_locator}")
  setResult(_rc)



end