eyes_selenium 1.21.0 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        checksums.yaml
    CHANGED
    
    | @@ -1,15 +1,15 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            !binary "U0hBMQ==":
         | 
| 3 3 | 
             
              metadata.gz: !binary |-
         | 
| 4 | 
            -
                 | 
| 4 | 
            +
                M2JiODEyMDY5YjIyZTdhOGQ1MGE1NTdhOTU1MTQ5YjBkY2UyYzUyOQ==
         | 
| 5 5 | 
             
              data.tar.gz: !binary |-
         | 
| 6 | 
            -
                 | 
| 6 | 
            +
                NmNhYWJiMzQ1ODhkZGY4ZDUzMGZmOGMxN2RhNWJjMDIxNGI1ZTkzYg==
         | 
| 7 7 | 
             
            SHA512:
         | 
| 8 8 | 
             
              metadata.gz: !binary |-
         | 
| 9 | 
            -
                 | 
| 10 | 
            -
                 | 
| 11 | 
            -
                 | 
| 9 | 
            +
                YjYxZTY2NGM2ZThkNWQ3ODlkOWM3MjgxMzdmYzE2NDkyNzA5YjQ4ZGIwNzI3
         | 
| 10 | 
            +
                NDA5MWFmZTUxZWZjMjM2NTM0ZDlhNWYzZWI5MDA2YTI2ZmIxNDdkNTNjZWMw
         | 
| 11 | 
            +
                ZGY1NGQ0NzQwYWZlNDRkYjQzOGViMWZhYTM1ZmQzM2RmYTlkZTI=
         | 
| 12 12 | 
             
              data.tar.gz: !binary |-
         | 
| 13 | 
            -
                 | 
| 14 | 
            -
                 | 
| 15 | 
            -
                 | 
| 13 | 
            +
                MWI1ZTc5ZTA2NDI3MWU1NjMwYTJhOGQ2MjEyNWYyZGQ5YjM5ODdlYWUwMjY5
         | 
| 14 | 
            +
                ZDczOWUxOTA3NjMyNTFjNzkxYmFlYTNiOWY2MmU5MDMxMzMwMjFmNDM2YjQ3
         | 
| 15 | 
            +
                OWZmMzdiOTI4MTE5NTRjODYyMzk5OWIwN2JiNWNkMjY0YmU2ODQ=
         | 
| @@ -21,6 +21,7 @@ class  Applitools::Driver | |
| 21 21 | 
             
                @remote_server_url = address_of_remote_server
         | 
| 22 22 | 
             
                @remote_session_id = remote_session_id
         | 
| 23 23 | 
             
                begin
         | 
| 24 | 
            +
                  #noinspection RubyResolve
         | 
| 24 25 | 
             
                  if driver.capabilities.takes_screenshot?
         | 
| 25 26 | 
             
                   @screenshot_taker = false
         | 
| 26 27 | 
             
                  else
         | 
| @@ -71,7 +72,7 @@ class  Applitools::Driver | |
| 71 72 | 
             
              end
         | 
| 72 73 |  | 
| 73 74 | 
             
              def user_agent
         | 
| 74 | 
            -
                execute_script  | 
| 75 | 
            +
                execute_script 'return navigator.userAgent'
         | 
| 75 76 | 
             
              rescue => e
         | 
| 76 77 | 
             
                puts "getUserAgent(): Failed to obtain user-agent string (#{e.message})"
         | 
| 77 78 | 
             
              end
         | 
| @@ -79,11 +80,13 @@ class  Applitools::Driver | |
| 79 80 | 
             
              private
         | 
| 80 81 |  | 
| 81 82 | 
             
                def address_of_remote_server
         | 
| 82 | 
            -
                   | 
| 83 | 
            -
                   | 
| 83 | 
            +
                  # The driver's url is not available using a standard interface, so we use reflection to get it.
         | 
| 84 | 
            +
                  #noinspection RubyResolve
         | 
| 85 | 
            +
                  uri = URI(driver.instance_eval{@bridge}.instance_eval{@http}.instance_eval{@server_url})
         | 
| 86 | 
            +
                  raise Applitools::EyesError.new('Failed to get remote web driver url') if uri.to_s.empty?
         | 
| 84 87 |  | 
| 85 88 | 
             
                  webdriver_host = uri.host
         | 
| 86 | 
            -
                  if [ | 
| 89 | 
            +
                  if %w[127.0.0.1 localhost].include?(webdriver_host) && !firefox? && !ie?
         | 
| 87 90 | 
             
                    uri.host = get_local_ip || 'localhost'
         | 
| 88 91 | 
             
                  end
         | 
| 89 92 |  | 
| @@ -18,7 +18,8 @@ class Applitools::Eyes | |
| 18 18 |  | 
| 19 19 | 
             
              private
         | 
| 20 20 | 
             
              attr_reader :agent_connector
         | 
| 21 | 
            -
              attr_accessor :session, :session_start_info, :match_window_task, :should_match_window_run_once_on_timeout
         | 
| 21 | 
            +
              attr_accessor :session, :session_start_info, :match_window_task, :should_match_window_run_once_on_timeout,
         | 
| 22 | 
            +
                            :dont_get_title
         | 
| 22 23 |  | 
| 23 24 | 
             
              public
         | 
| 24 25 | 
             
              attr_reader :disabled, :app_name, :test_name, :is_open, :viewport_size, :failure_reports, :match_level, :driver
         | 
| @@ -33,6 +34,17 @@ class Applitools::Eyes | |
| 33 34 | 
             
                self.class.api_key
         | 
| 34 35 | 
             
              end
         | 
| 35 36 |  | 
| 37 | 
            +
              def title
         | 
| 38 | 
            +
                unless dont_get_title
         | 
| 39 | 
            +
                  begin
         | 
| 40 | 
            +
                   return driver.title
         | 
| 41 | 
            +
                  rescue
         | 
| 42 | 
            +
                    self.dont_get_title = true
         | 
| 43 | 
            +
                  end
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
                ''
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
             | 
| 36 48 | 
             
              def initialize(params={})
         | 
| 37 49 |  | 
| 38 50 | 
             
                @disabled = params[:disabled]
         | 
| @@ -51,6 +63,7 @@ class Applitools::Eyes | |
| 51 63 | 
             
                @failure_reports = Applitools::FailureReports::ON_CLOSE
         | 
| 52 64 | 
             
                @save_new_tests = true
         | 
| 53 65 | 
             
                @save_failed_tests = false
         | 
| 66 | 
            +
                @dont_get_title = false
         | 
| 54 67 | 
             
              end
         | 
| 55 68 |  | 
| 56 69 | 
             
              def open(params={})
         | 
| @@ -87,12 +100,12 @@ class Applitools::Eyes | |
| 87 100 | 
             
                user_inputs.clear
         | 
| 88 101 | 
             
              end
         | 
| 89 102 |  | 
| 90 | 
            -
              def check_window(tag)
         | 
| 103 | 
            +
              def check_window(tag=nil)
         | 
| 91 104 | 
             
                return if disabled?
         | 
| 92 105 | 
             
                raise Applitools::EyesError.new('Eyes not open') if !open?
         | 
| 93 106 | 
             
                unless session
         | 
| 94 107 | 
             
                  start_session
         | 
| 95 | 
            -
                  self.match_window_task = Applitools::MatchWindowTask.new(agent_connector, session, driver, match_timeout)
         | 
| 108 | 
            +
                  self.match_window_task = Applitools::MatchWindowTask.new(self, agent_connector, session, driver, match_timeout)
         | 
| 96 109 | 
             
                end
         | 
| 97 110 |  | 
| 98 111 | 
             
                as_expected = match_window_task.match_window(tag, should_match_window_run_once_on_timeout)
         | 
| @@ -154,7 +167,8 @@ class Applitools::Eyes | |
| 154 167 | 
             
              #      get "http://www.google.com"
         | 
| 155 168 | 
             
              #      check_window("initial")
         | 
| 156 169 | 
             
              #    end
         | 
| 157 | 
            -
               | 
| 170 | 
            +
              #noinspection RubyUnusedLocalVariable
         | 
| 171 | 
            +
              def test(params={}, &block)
         | 
| 158 172 | 
             
                begin
         | 
| 159 173 | 
             
                  open(params)
         | 
| 160 174 | 
             
                  yield(driver)
         | 
| @@ -3,13 +3,16 @@ require 'base64' | |
| 3 3 |  | 
| 4 4 | 
             
            class Applitools::MatchWindowTask
         | 
| 5 5 |  | 
| 6 | 
            +
              private
         | 
| 6 7 | 
             
              MATCH_INTERVAL = 0.5
         | 
| 7 8 | 
             
              AppOutput = Struct.new(:title, :screenshot64)
         | 
| 8 9 |  | 
| 9 | 
            -
              attr_reader :agent_connector, :session, :driver, :max_window_load_time
         | 
| 10 | 
            +
              attr_reader :eyes, :agent_connector, :session, :driver, :max_window_load_time
         | 
| 10 11 |  | 
| 12 | 
            +
              public
         | 
| 11 13 | 
             
              ## max_load_time: maximum wait time for check window, in seconds
         | 
| 12 | 
            -
              def initialize(agent_connector, session, driver, max_window_load_time)
         | 
| 14 | 
            +
              def initialize(eyes, agent_connector, session, driver, max_window_load_time)
         | 
| 15 | 
            +
                @eyes = eyes
         | 
| 13 16 | 
             
                @agent_connector = agent_connector
         | 
| 14 17 | 
             
                @session = session
         | 
| 15 18 | 
             
                @driver = driver
         | 
| @@ -26,7 +29,7 @@ class Applitools::MatchWindowTask | |
| 26 29 | 
             
                else
         | 
| 27 30 | 
             
                  run_with_intervals(tag, max_window_load_time)
         | 
| 28 31 | 
             
                end
         | 
| 29 | 
            -
             | 
| 32 | 
            +
                #noinspection RubyUnnecessaryReturnStatement
         | 
| 30 33 | 
             
                driver.eyes.clear_user_inputs and return res
         | 
| 31 34 | 
             
              end
         | 
| 32 35 |  | 
| @@ -51,7 +54,7 @@ class Applitools::MatchWindowTask | |
| 51 54 | 
             
              private
         | 
| 52 55 |  | 
| 53 56 | 
             
                def prep_match_data(tag, ignore_mismatch)
         | 
| 54 | 
            -
                  title =  | 
| 57 | 
            +
                  title = eyes.title
         | 
| 55 58 | 
             
                  current_screenshot_encoded = Base64.decode64(driver.screenshot_as(:base64))
         | 
| 56 59 | 
             
                  @current_screenshot = ChunkyPNG::Image.from_blob(current_screenshot_encoded)
         | 
| 57 60 | 
             
                  compressed_screenshot = Applitools::Utils::ImageDeltaCompressor.compress_by_raw_blocks(@current_screenshot,
         | 
| @@ -83,7 +86,6 @@ class Applitools::MatchWindowTask | |
| 83 86 | 
             
                      end
         | 
| 84 87 | 
             
                    end
         | 
| 85 88 | 
             
                  end
         | 
| 86 | 
            -
             | 
| 87 89 | 
             
                  Applitools::MatchWindowData.new(app_output, user_inputs, tag, ignore_mismatch, compressed_screenshot)
         | 
| 88 90 | 
             
                end
         | 
| 89 91 |  | 
| @@ -91,9 +93,9 @@ class Applitools::MatchWindowTask | |
| 91 93 | 
             
                  data = prep_match_data(tag, ignore_mismatch)
         | 
| 92 94 | 
             
                  as_expected = agent_connector.match_window(session, data)
         | 
| 93 95 | 
             
                  # If the server stored this image, it will be used as a base for our next screenshot compression
         | 
| 94 | 
            -
                   | 
| 96 | 
            +
                  unless ignore_mismatch
         | 
| 95 97 | 
             
                    @last_checked_window = @current_screenshot
         | 
| 96 98 | 
             
                  end
         | 
| 97 | 
            -
                   | 
| 99 | 
            +
                  as_expected
         | 
| 98 100 | 
             
                end
         | 
| 99 101 | 
             
            end
         | 
| @@ -12,7 +12,7 @@ class Applitools::ScreenshotTaker | |
| 12 12 | 
             
              end
         | 
| 13 13 |  | 
| 14 14 | 
             
              def screenshot
         | 
| 15 | 
            -
                res = self.class.get(driver_server_uri.gsub(/\/$/,"") + "/session/#{driver_session_id}/screenshot") | 
| 15 | 
            +
                res = self.class.get(driver_server_uri.to_s.gsub(/\/$/,"") + "/session/#{driver_session_id}/screenshot")
         | 
| 16 16 | 
             
                res.parsed_response['value']
         | 
| 17 17 | 
             
              end
         | 
| 18 18 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: eyes_selenium
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.22.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Applitools team
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2013-12- | 
| 11 | 
            +
            date: 2013-12-22 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: selenium-webdriver
         |