angular_webdriver 1.0.4 → 1.0.5
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 +4 -4
- data/.coveralls.yml +1 -0
- data/Gemfile +1 -0
- data/angular_webdriver.gemspec +4 -4
- data/lib/angular_webdriver/protractor/protractor.rb +12 -18
- data/lib/angular_webdriver/protractor/rspec_helpers.rb +41 -10
- data/lib/angular_webdriver/version.rb +2 -2
- data/readme.md +4 -1
- data/release_notes.md +21 -0
- metadata +13 -12
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 58db555e9c61c2ac98f01a0f922028cedd06a7bb
         | 
| 4 | 
            +
              data.tar.gz: 0690ef7884d1dd4f96e8b1652fd8130c5d9545e2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 4803748675e7324fd817f3af6475245eee262e00a4a0ec72ebf162e58837155894b933f71980e4105c7cf2c3b579b72f1eeb43e89d3f7e45638669c5239767c9
         | 
| 7 | 
            +
              data.tar.gz: 101732bf8cdd661a9393128b7526ea5c0ebebf1b60be0b91b73a80a771f8a349846c258a01c3bbea203aa39aef4ff779d6ec3486b9a7e3cae37ed365fb313d5d
         | 
    
        data/.coveralls.yml
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            service_name: travis-ci
         | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/angular_webdriver.gemspec
    CHANGED
    
    | @@ -19,12 +19,12 @@ Gem::Specification.new do |s| | |
| 19 19 | 
             
              # exact versions of both are used.
         | 
| 20 20 | 
             
              s.add_runtime_dependency 'selenium-webdriver', '= 2.46.2'
         | 
| 21 21 | 
             
              s.add_runtime_dependency 'watir-webdriver', '= 0.7.0'
         | 
| 22 | 
            -
              s.add_runtime_dependency 'webdriver_utils', '>=  | 
| 22 | 
            +
              s.add_runtime_dependency 'webdriver_utils', '>= 1.0.2'
         | 
| 23 23 |  | 
| 24 | 
            -
              s.add_development_dependency 'rspec', '>= 3. | 
| 25 | 
            -
              s.add_development_dependency 'appium_thor', '>=  | 
| 24 | 
            +
              s.add_development_dependency 'rspec', '>= 3.3.0'
         | 
| 25 | 
            +
              s.add_development_dependency 'appium_thor', '>= 1.0.1'
         | 
| 26 26 | 
             
              s.add_development_dependency 'pry', '>= 0.10.1'
         | 
| 27 | 
            -
              s.add_development_dependency 'trace_files', ' | 
| 27 | 
            +
              s.add_development_dependency 'trace_files', '>= 1.0.0'
         | 
| 28 28 |  | 
| 29 29 | 
             
              s.files = `git ls-files -z`.split("\x0").reject do |f|
         | 
| 30 30 | 
             
                f.match(%r{^(gen|test|spec|features|protractor)/})
         | 
| @@ -67,7 +67,7 @@ class Protractor | |
| 67 67 | 
             
                return @base_url = nil unless url
         | 
| 68 68 |  | 
| 69 69 | 
             
                uri = URI.parse(url) rescue false
         | 
| 70 | 
            -
                 | 
| 70 | 
            +
                fail ArgumentError, "Invalid URL #{url.inspect}. Must contain scheme and host." unless uri && uri.scheme && uri.host
         | 
| 71 71 | 
             
                @base_url = url
         | 
| 72 72 | 
             
              end
         | 
| 73 73 |  | 
| @@ -111,10 +111,10 @@ class Protractor | |
| 111 111 |  | 
| 112 112 | 
             
                timeout = opt_timeout
         | 
| 113 113 |  | 
| 114 | 
            -
                 | 
| 114 | 
            +
                fail ArgumentError, "Invalid timeout #{timeout}" unless timeout.is_a?(Numeric)
         | 
| 115 115 |  | 
| 116 116 | 
             
                unless destination.is_a?(String) || destination.is_a?(URI)
         | 
| 117 | 
            -
                   | 
| 117 | 
            +
                  fail ArgumentError, "Invalid destination #{destination}"
         | 
| 118 118 | 
             
                end
         | 
| 119 119 |  | 
| 120 120 | 
             
                # http://about:blank doesn't work. it must be exactly about:blank
         | 
| @@ -157,7 +157,7 @@ class Protractor | |
| 157 157 | 
             
                  url                  = executeScript_('return window.location.href;', msg.call('get url'))
         | 
| 158 158 | 
             
                  not_on_reset_url     = url != reset_url
         | 
| 159 159 | 
             
                  destination_is_reset = destination == reset_url
         | 
| 160 | 
            -
                   | 
| 160 | 
            +
                  fail 'still on reset url' unless not_on_reset_url || destination_is_reset
         | 
| 161 161 | 
             
                end
         | 
| 162 162 |  | 
| 163 163 | 
             
                # now that the url has changed, make sure Angular has loaded
         | 
| @@ -181,13 +181,13 @@ class Protractor | |
| 181 181 | 
             
              #
         | 
| 182 182 | 
             
              #  @param opt_timeout [Integer] Number of seconds to wait for Angular to start.
         | 
| 183 183 | 
             
              #
         | 
| 184 | 
            -
              def refresh opt_timeout
         | 
| 185 | 
            -
                timeout = opt_timeout | 
| 184 | 
            +
              def refresh opt_timeout=10
         | 
| 185 | 
            +
                timeout = opt_timeout
         | 
| 186 186 |  | 
| 187 187 | 
             
                return driver.navigate.refresh if ignore_sync
         | 
| 188 188 |  | 
| 189 | 
            -
                executeScript_('return window.location.href;',
         | 
| 190 | 
            -
             | 
| 189 | 
            +
                href = executeScript_('return window.location.href;',
         | 
| 190 | 
            +
                                      'Protractor.refresh() - getUrl')
         | 
| 191 191 |  | 
| 192 192 | 
             
                get(href, timeout)
         | 
| 193 193 | 
             
              end
         | 
| @@ -240,7 +240,7 @@ class Protractor | |
| 240 240 | 
             
                @watir = opts[:watir]
         | 
| 241 241 |  | 
| 242 242 | 
             
                valid_watir = defined?(Watir::Browser) && @watir.is_a?(Watir::Browser)
         | 
| 243 | 
            -
                 | 
| 243 | 
            +
                fail ArgumentError, "Driver must be a Watir::Browser not #{@driver.class}" unless valid_watir
         | 
| 244 244 | 
             
                @driver = @watir.driver
         | 
| 245 245 |  | 
| 246 246 | 
             
                unless Selenium::WebDriver::SearchContext::FINDERS.keys.include?(NEW_FINDERS_KEYS)
         | 
| @@ -290,15 +290,9 @@ class Protractor | |
| 290 290 | 
             
                #
         | 
| 291 291 | 
             
                # toplevel self enables by/element from within pry. rspec helpers enables
         | 
| 292 292 | 
             
                # by/element within rspec tests when used with install_rspec_helpers.
         | 
| 293 | 
            -
                toplevel_main      = eval('self' | 
| 294 | 
            -
                [toplevel_main, AngularWebdriver::RSpecHelpers].each do |obj|
         | 
| 295 | 
            -
                   | 
| 296 | 
            -
                  # if we use define singleton on the rspec helpers, then rspec won't
         | 
| 297 | 
            -
                  # be able to handle block parameters.
         | 
| 298 | 
            -
                  #
         | 
| 299 | 
            -
                  # Also rspec requires config.include AngularWebdriver::RSpecHelpers
         | 
| 300 | 
            -
                  # for the no_wait helper to accept the block parameter.
         | 
| 301 | 
            -
                  method_type = obj == toplevel_main ? :define_singleton_method : :define_method
         | 
| 293 | 
            +
                toplevel_main      = TOPLEVEL_BINDING.eval('self')
         | 
| 294 | 
            +
                [toplevel_main, ::AngularWebdriver::RSpecHelpers].each do |obj|
         | 
| 295 | 
            +
                  method_type = :define_singleton_method
         | 
| 302 296 |  | 
| 303 297 | 
             
                  obj.send method_type, :element do |*args|
         | 
| 304 298 | 
             
                    protractor_element.element *args
         | 
| @@ -5,15 +5,46 @@ module AngularWebdriver | |
| 5 5 | 
             
              module RSpecHelpers
         | 
| 6 6 | 
             
              end
         | 
| 7 7 |  | 
| 8 | 
            -
               | 
| 9 | 
            -
             | 
| 10 | 
            -
                context = RSpec::Core::ExampleGroup
         | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 8 | 
            +
              class << self
         | 
| 9 | 
            +
                # call after invoking Protractor.new. Installs by/element/no_wait
         | 
| 10 | 
            +
                def install_rspec_helpers context = RSpec::Core::ExampleGroup
         | 
| 11 | 
            +
                  helpers = AngularWebdriver::RSpecHelpers
         | 
| 12 | 
            +
                  helpers.singleton_methods(false).each do |method_symbol|
         | 
| 13 | 
            +
                    context.send(:define_method, method_symbol) do |*args, &block|
         | 
| 14 | 
            +
                      args.length == 0 ? helpers.send(method_symbol, &block) :
         | 
| 15 | 
            +
                        helpers.send(method_symbol, *args, &block)
         | 
| 16 | 
            +
                    end
         | 
| 16 17 | 
             
                  end
         | 
| 17 18 | 
             
                end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 19 | 
            +
             | 
| 20 | 
            +
                def require_all_pages glob_path=nil
         | 
| 21 | 
            +
                  glob_path ||= File.join(Rake.application.original_dir, 'page', '**', '*.rb')
         | 
| 22 | 
            +
                  Dir.glob(glob_path) { |file| require_relative file }
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                def define_page_methods opts={}
         | 
| 26 | 
            +
                  method        = opts.fetch(:method, :define_singleton_method)
         | 
| 27 | 
            +
                  page_module   = opts[:page_module] || raise('must set page_module')
         | 
| 28 | 
            +
                  target_class  = opts[:target_class] || raise('must set target_class')
         | 
| 29 | 
            +
                  driver_object = opts[:watir] || opts[:driver] || raise('must set driver')
         | 
| 30 | 
            +
                  page_module.constants.each do |page_class|
         | 
| 31 | 
            +
                    qualified_class = page_module.const_get(page_class)
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                    # enable use of by/element/no_wait within block passed to pageobject element
         | 
| 34 | 
            +
                    # element(:greet_button) { element(by.binding('greet'))   }
         | 
| 35 | 
            +
                    AngularWebdriver.install_rspec_helpers qualified_class
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                    # ButtonsPage => buttons_page
         | 
| 38 | 
            +
                    # https://github.com/rails/rails/blob/daaa21bc7d20f2e4ff451637423a25ff2d5e75c7/activesupport/lib/active_support/inflector/methods.rb#L96
         | 
| 39 | 
            +
                    page_name = page_class.to_s.gsub(/([a-z\d])([A-Z])/, '\1_\2').downcase
         | 
| 40 | 
            +
                    target_class.send(method, page_name) do
         | 
| 41 | 
            +
                      instance_name = "@#{page_module}#{page_class}"
         | 
| 42 | 
            +
                      instance      = instance_variable_get(instance_name)
         | 
| 43 | 
            +
                      return instance if instance
         | 
| 44 | 
            +
                      obj = qualified_class.new driver_object
         | 
| 45 | 
            +
                      instance_variable_set instance_name, obj
         | 
| 46 | 
            +
                    end
         | 
| 47 | 
            +
                  end
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
              end # class << self
         | 
| 50 | 
            +
            end # module AngularWebdriver
         | 
| @@ -1,4 +1,4 @@ | |
| 1 1 | 
             
            module AngularWebdriver
         | 
| 2 | 
            -
              VERSION = '1.0. | 
| 3 | 
            -
              DATE    = '2015-06- | 
| 2 | 
            +
              VERSION = '1.0.5' unless defined? ::AngularWebdriver::VERSION
         | 
| 3 | 
            +
              DATE    = '2015-06-20' unless defined? ::AngularWebdriver::DATE
         | 
| 4 4 | 
             
            end
         | 
    
        data/readme.md
    CHANGED
    
    | @@ -1,4 +1,7 @@ | |
| 1 | 
            -
            # angular_webdriver  | 
| 1 | 
            +
            # angular_webdriver 
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            [](https://rubygems.org/gems/angular_webdriver) [](https://travis-ci.org/bootstraponline/angular_webdriver/builds) [](https://coveralls.io/r/bootstraponline/angular_webdriver) [](https://gemnasium.com/bootstraponline/angular_webdriver)
         | 
| 4 | 
            +
             | 
| 2 5 |  | 
| 3 6 | 
             
            Angular enhancements to the Ruby webdriver bindings based on [protractor](https://github.com/angular/protractor).
         | 
| 4 7 |  | 
    
        data/release_notes.md
    CHANGED
    
    | @@ -1,3 +1,24 @@ | |
| 1 | 
            +
            #### v1.0.5 2015-06-20
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            - [248bd2a](https://github.com/bootstraponline/angular_webdriver/commit/248bd2a7d979543047e4ad9d4f7f12f4a99f4ce8) Release 1.0.5
         | 
| 4 | 
            +
            - [1347e18](https://github.com/bootstraponline/angular_webdriver/commit/1347e181c8d0c29a9e62b9a7a29c882c20fff6e4) Update dependencies
         | 
| 5 | 
            +
            - [0f41127](https://github.com/bootstraponline/angular_webdriver/commit/0f411277df55783ef46736ba28c5f3aaee07324c) Update install_rspec_helpers. Add page helpers
         | 
| 6 | 
            +
            - [b4c4ad4](https://github.com/bootstraponline/angular_webdriver/commit/b4c4ad4d519b1538e4db5e25ddd7594f86b99660) Test rspec helpers
         | 
| 7 | 
            +
            - [7075fc0](https://github.com/bootstraponline/angular_webdriver/commit/7075fc037acf2797e39ea4be64631275b2c6ded6) Update badges
         | 
| 8 | 
            +
            - [ddbfbf0](https://github.com/bootstraponline/angular_webdriver/commit/ddbfbf0c18489c1f1b73f458daeca4f0defdf0c8) Add gemnasium badge
         | 
| 9 | 
            +
            - [b47c73c](https://github.com/bootstraponline/angular_webdriver/commit/b47c73c8835e160b28ab0b65bb66866f32e744a5) Set spec timeouts and window size
         | 
| 10 | 
            +
            - [5b5b260](https://github.com/bootstraponline/angular_webdriver/commit/5b5b260d45df6f0a5f462cdcb5008d09b300b180) Test locate find_first_by_multiple
         | 
| 11 | 
            +
            - [eed49f4](https://github.com/bootstraponline/angular_webdriver/commit/eed49f44d6bf9ed6caf5a725648d16acbdcc0991) Improve watir patch tests
         | 
| 12 | 
            +
            - [2033489](https://github.com/bootstraponline/angular_webdriver/commit/2033489b6f8425c19e55b1eb8bab5d18c1f6ecf9) Clean up exception raising
         | 
| 13 | 
            +
            - [20b8d91](https://github.com/bootstraponline/angular_webdriver/commit/20b8d91bac69d4e2411baed30c470db23c6c7ab8) Fix protractor refresh
         | 
| 14 | 
            +
            - [df975a4](https://github.com/bootstraponline/angular_webdriver/commit/df975a4ce94950e58f0077c3510402912d327ae0) Fix dynamic methods
         | 
| 15 | 
            +
            - [2b0aa97](https://github.com/bootstraponline/angular_webdriver/commit/2b0aa97e8f31003bb75a1ad7c3bc1c8cd7cf6d93) Launch browser exactly once for faster testing
         | 
| 16 | 
            +
            - [a522795](https://github.com/bootstraponline/angular_webdriver/commit/a52279514b9db1ff3ec548bd9f63f8ab003e54b7) Disable Pry paging
         | 
| 17 | 
            +
            - [a5d129e](https://github.com/bootstraponline/angular_webdriver/commit/a5d129ec81a85a18952a040b9be1b6ef7345bad3) Fix client side scripts spec
         | 
| 18 | 
            +
            - [cdf3c88](https://github.com/bootstraponline/angular_webdriver/commit/cdf3c88e1aa7cde322843aa25bfadd7fe03a6ccd) Add coveralls
         | 
| 19 | 
            +
            - [e9231df](https://github.com/bootstraponline/angular_webdriver/commit/e9231dfbb327e6243222dda573fbdc9eb97b6c95) Remove completed todo
         | 
| 20 | 
            +
             | 
| 21 | 
            +
             | 
| 1 22 | 
             
            #### v1.0.4 2015-06-07
         | 
| 2 23 |  | 
| 3 24 | 
             
            - [a7965d7](https://github.com/bootstraponline/angular_webdriver/commit/a7965d7d1103bb802eabbdf11a37c9be8f9f3547) Release 1.0.4
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: angular_webdriver
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0. | 
| 4 | 
            +
              version: 1.0.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - code@bootstraponline.com
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015-06- | 
| 11 | 
            +
            date: 2015-06-20 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: selenium-webdriver
         | 
| @@ -44,42 +44,42 @@ dependencies: | |
| 44 44 | 
             
                requirements:
         | 
| 45 45 | 
             
                - - ">="
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version:  | 
| 47 | 
            +
                    version: 1.0.2
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ">="
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version:  | 
| 54 | 
            +
                    version: 1.0.2
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: rspec
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 59 | 
             
                - - ">="
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: 3. | 
| 61 | 
            +
                    version: 3.3.0
         | 
| 62 62 | 
             
              type: :development
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 66 | 
             
                - - ">="
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            -
                    version: 3. | 
| 68 | 
            +
                    version: 3.3.0
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: appium_thor
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                requirements:
         | 
| 73 73 | 
             
                - - ">="
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version:  | 
| 75 | 
            +
                    version: 1.0.1
         | 
| 76 76 | 
             
              type: :development
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 80 | 
             
                - - ">="
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version:  | 
| 82 | 
            +
                    version: 1.0.1
         | 
| 83 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 84 | 
             
              name: pry
         | 
| 85 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -98,16 +98,16 @@ dependencies: | |
| 98 98 | 
             
              name: trace_files
         | 
| 99 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 100 | 
             
                requirements:
         | 
| 101 | 
            -
                - - " | 
| 101 | 
            +
                - - ">="
         | 
| 102 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            -
                    version: 0.0 | 
| 103 | 
            +
                    version: 1.0.0
         | 
| 104 104 | 
             
              type: :development
         | 
| 105 105 | 
             
              prerelease: false
         | 
| 106 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 107 | 
             
                requirements:
         | 
| 108 | 
            -
                - - " | 
| 108 | 
            +
                - - ">="
         | 
| 109 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            -
                    version: 0.0 | 
| 110 | 
            +
                    version: 1.0.0
         | 
| 111 111 | 
             
            description: Angular webdriver.
         | 
| 112 112 | 
             
            email:
         | 
| 113 113 | 
             
            - code@bootstraponline.com
         | 
| @@ -115,6 +115,7 @@ executables: [] | |
| 115 115 | 
             
            extensions: []
         | 
| 116 116 | 
             
            extra_rdoc_files: []
         | 
| 117 117 | 
             
            files:
         | 
| 118 | 
            +
            - ".coveralls.yml"
         | 
| 118 119 | 
             
            - ".gitignore"
         | 
| 119 120 | 
             
            - ".gitmodules"
         | 
| 120 121 | 
             
            - ".rspec"
         |