Class: Applitools::MatchWindowTask
- Inherits:
-
Object
- Object
- Applitools::MatchWindowTask
- Defined in:
- lib/applitools/core/match_window_task.rb
Defined Under Namespace
Classes: AppOuptut
Constant Summary collapse
- MATCH_INTERVAL =
0.5
Instance Attribute Summary collapse
-
#app_output_provider ⇒ Object
readonly
Returns the value of attribute app_output_provider.
-
#default_retry_timeout ⇒ Object
readonly
Returns the value of attribute default_retry_timeout.
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
-
#running_session ⇒ Object
readonly
Returns the value of attribute running_session.
Instance Method Summary collapse
-
#initialize(logger, running_session, retry_timeout, app_output_provider) ⇒ MatchWindowTask
constructor
A new instance of MatchWindowTask.
- #match_window(options = {}) ⇒ Object
Constructor Details
#initialize(logger, running_session, retry_timeout, app_output_provider) ⇒ MatchWindowTask
Returns a new instance of MatchWindowTask.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/applitools/core/match_window_task.rb', line 9 def initialize(logger, running_session, retry_timeout, app_output_provider) @logger = logger @running_session = running_session # @driver = driver @default_retry_timeout = retry_timeout @app_output_provider = app_output_provider ArgumentGuard.not_nil logger, 'logger' ArgumentGuard.not_nil running_session, 'running_session' ArgumentGuard.not_nil app_output_provider, 'app_output_provider' ArgumentGuard.greater_than_or_equal_to_zero retry_timeout, 'retry_timeout' return if app_output_provider.respond_to? :app_output raise Applitools::EyesIllegalArgument.new 'MatchWindowTask.new(): app_output_provider doesn\'t' / ' respond to :app_output' end |
Instance Attribute Details
#app_output_provider ⇒ Object (readonly)
Returns the value of attribute app_output_provider.
7 8 9 |
# File 'lib/applitools/core/match_window_task.rb', line 7 def app_output_provider @app_output_provider end |
#default_retry_timeout ⇒ Object (readonly)
Returns the value of attribute default_retry_timeout.
7 8 9 |
# File 'lib/applitools/core/match_window_task.rb', line 7 def default_retry_timeout @default_retry_timeout end |
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
7 8 9 |
# File 'lib/applitools/core/match_window_task.rb', line 7 def logger @logger end |
#running_session ⇒ Object (readonly)
Returns the value of attribute running_session.
7 8 9 |
# File 'lib/applitools/core/match_window_task.rb', line 7 def running_session @running_session end |
Instance Method Details
#match_window(options = {}) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/applitools/core/match_window_task.rb', line 26 def match_window( = {}) user_inputs = [:user_inputs] last_screenshot = [:last_screenshot] region_provider = [:region_provider] tag = [:tag] should_match_window_run_once_on_timeout = [:should_match_window_run_once_on_timeout] ignore_mismatch = [:ignore_mismatch] retry_timeout = [:retry_timeout] retry_timeout = default_retry_timeout if retry_timeout < 0 logger.info "retry_timeout = #{retry_timeout}" elapsed_time_start = Time.now if retry_timeout.zero? || should_match_window_run_once_on_timeout sleep retry_timeout if should_match_window_run_once_on_timeout app_output = app_output_provider.app_output region_provider, last_screenshot match_result = perform_match user_inputs: user_inputs, app_output: app_output, tag: tag, ignore_mismatch: ignore_mismatch else app_output = app_output_provider.app_output region_provider, last_screenshot start = Time.now match_result = perform_match user_inputs: user_inputs, app_output: app_output, tag: tag, ignore_mismatch: true retry_time = Time.now - start while retry_time < retry_timeout && !match_result.as_expected? sleep MATCH_INTERVAL app_output = app_output_provider.app_output region_provider, last_screenshot match_result = perform_match user_inputs: user_inputs, app_output: app_output, tag: tag, ignore_mismatch: true retry_time = Time.now - start end unless match_result.as_expected? app_output = app_output_provider.app_output region_provider, last_screenshot match_result = perform_match user_inputs: user_inputs, app_output: app_output, tag: tag, ignore_mismatch: ignore_mismatch end end elapsed_time = (Time.now - elapsed_time_start) / 1000 logger.info "Completed in #{format('%.2f', elapsed_time)} seconds" match_result.screenshot = app_output.screenshot match_result end |