appium_capybara 1.2.1 → 1.3.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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dcaa3b3ff61f1ef5be33c9669abbe8cb2b033904
4
- data.tar.gz: 64b3658115760f7df8f50c3569e23faafa61620f
3
+ metadata.gz: d66d327bb69cb59b65203b343dd8d51cc7af1af9
4
+ data.tar.gz: cb4d19b3eba30e99bbff1d2efc70dd35bd5e987d
5
5
  SHA512:
6
- metadata.gz: 9a04e754a3d64d62d4b04937a82992cb922939e37807f0761d679d7573491dd2053668a6752f1a3667895ff0b794ca87ab071d14b96e36e58f0f7cc1cb809e24
7
- data.tar.gz: fd6853ffe43d951e0405888349820b5d71b31d556b673b3ce6e4b543d653c1fca6fd52ab064b4c3fae7b100daa55d2fdcd129f84f74c0e649fd866af29b8ff11
6
+ metadata.gz: ece5c4ff572a5dd92b137c351847b76440b106f6e83b3c5e5fbd1add8cafc98aee16d161373d51c78a004985859fa98750082aa500edcd003627db346937e8cf
7
+ data.tar.gz: 5630655cb736c741fee94f4408a50ebe92acc9dfbccedd5f05f91ef9d87d8125ee2bb3ffc8bf2b3311b7e7d3d7c40a838d1a4640ce4096d3d898c9ecb86916c4
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
21
21
  s.require_paths = ['lib']
22
22
 
23
23
  s.add_runtime_dependency 'appium_lib', '>= 4.1.0'
24
- s.add_runtime_dependency 'capybara', '~> 2.4', '>= 2.4.1'
24
+ s.add_runtime_dependency 'capybara', '~> 2.7'
25
25
 
26
26
  s.add_development_dependency 'appium_thor', '~> 0.0', '>= 0.0.7'
27
27
 
data/example/Gemfile CHANGED
@@ -1,5 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'appium_capybara', '~> 0.0.2'
3
+ gem 'appium_capybara', :path => ".."
4
4
  gem 'rspec', '~> 3.0.0'
5
5
  gem 'site_prism', '~> 2.6'
data/example/appium.txt CHANGED
@@ -1,8 +1,8 @@
1
1
  [caps]
2
2
  platformName = "ios"
3
- deviceName ="iPhone Simulator"
3
+ deviceName ="iPhone 6"
4
4
  app = "./UICatalog.app.zip"
5
- platformVersion = "7.1"
5
+ platformVersion = "8.1"
6
6
 
7
7
  [appium_lib]
8
8
  sauce_username = ""
@@ -1,5 +1,6 @@
1
- require 'appium_capybara'
2
1
  require 'rspec'
2
+ require 'capybara/rspec'
3
+ require 'appium_capybara'
3
4
  require 'site_prism'
4
5
 
5
6
  Capybara.register_driver(:appium) do |app|
@@ -4,9 +4,8 @@ require_relative 'appium_capybara/driver/appium/driver'
4
4
  require_relative 'appium_capybara/driver/appium/node'
5
5
 
6
6
  require_relative 'appium_capybara/ext/base_ext'
7
- require_relative 'appium_capybara/ext/query_ext'
7
+ require_relative 'appium_capybara/ext/selector_query_ext'
8
8
  require_relative 'appium_capybara/ext/selector_ext'
9
- require_relative 'appium_capybara/ext/session_ext'
10
9
 
11
10
  module Appium::Capybara
12
- end
11
+ end
@@ -22,6 +22,14 @@ module Appium::Capybara
22
22
  @appium_driver = Appium::Driver.new @options
23
23
  # browser is the standard selenium driver without any appium methods
24
24
  @browser = @appium_driver.start_driver
25
+
26
+ main = Process.pid
27
+ at_exit do
28
+ # Store the exit status of the test run since it goes away after calling the at_exit proc...
29
+ @exit_status = $!.status if $!.is_a?(SystemExit)
30
+ quit if Process.pid == main
31
+ exit @exit_status if @exit_status # Force exit with stored status
32
+ end
25
33
  end
26
34
  @browser
27
35
  end
@@ -79,7 +87,7 @@ module Appium::Capybara
79
87
  # override
80
88
  # Capybara always passes an options param but appium_lib can't do anything with it.
81
89
  def save_screenshot(path, options = {})
82
- appium_driver.screenshot path
90
+ appium_driver.screenshot path if @appium_driver
83
91
  end
84
92
 
85
93
  # new
@@ -1,20 +1,10 @@
1
1
  module Capybara
2
2
  class Selector
3
+
3
4
  def custom(f, &block)
4
- @format = f
5
- @custom = block if block
6
- @custom
5
+ @format, @expression = f, block if block
7
6
  end
8
7
 
9
- def call(locator)
10
- if @format == :css
11
- @css.call(locator)
12
- elsif @format == :xpath
13
- @xpath.call(locator)
14
- else
15
- @custom.call(locator)
16
- end
17
- end
18
8
  end
19
9
  end
20
10
 
@@ -29,4 +19,4 @@ Capybara.add_selector(:name) do
29
19
  end
30
20
  Capybara.add_selector(:accessibility_id) do
31
21
  custom(:accessibility_id) { |locator| locator }
32
- end
22
+ end
@@ -1,14 +1,15 @@
1
- class Capybara::Query < Capybara::Queries::BaseQuery
1
+ class Capybara::Queries::SelectorQuery < Capybara::Queries::BaseQuery
2
+
2
3
  # @api private
3
4
  def resolve_for(node, exact = nil)
4
5
  node.synchronize do
5
6
  children = if selector.format == :css
6
- node.find_css(css)
7
- elsif selector.format == :xpath
8
- node.find_xpath(xpath(exact))
9
- else
10
- node.find_custom(selector.format, locator)
11
- end.map do |child|
7
+ node.find_css(css)
8
+ elsif selector.format == :xpath
9
+ node.find_xpath(xpath(exact))
10
+ else
11
+ node.find_custom(selector.format, @expression)
12
+ end.map do |child|
12
13
  if node.is_a?(Capybara::Node::Base)
13
14
  Capybara::Node::Element.new(node.session, child, node, self)
14
15
  else
@@ -18,4 +19,5 @@ class Capybara::Query < Capybara::Queries::BaseQuery
18
19
  Capybara::Result.new(children, self)
19
20
  end
20
21
  end
22
+
21
23
  end
@@ -1,6 +1,6 @@
1
1
  module Appium
2
2
  module Capybara
3
- VERSION = '1.2.1' unless defined? ::Appium::Capybara::VERSION
4
- DATE = '2014-12-29' unless defined? ::Appium::Capybara::DATE
3
+ VERSION = '1.3.0' unless defined? ::Appium::Capybara::VERSION
4
+ DATE = '2016-04-22' unless defined? ::Appium::Capybara::DATE
5
5
  end
6
6
  end
data/release_notes.md CHANGED
@@ -1,6 +1,20 @@
1
+ #### v1.3.0 2016-04-22
2
+
3
+ - [9a2517c](https://github.com/appium/appium_capybara/commit/9a2517c7797ae1719a4ef91b0db939b11e9af2e5) Release 1.3.0
4
+ - [30496b0](https://github.com/appium/appium_capybara/commit/30496b00cdca96a98c87a7987b03f396d42f9584) Release 1.3.0
5
+ - [e77c23b](https://github.com/appium/appium_capybara/commit/e77c23b5806e3de20a813edb93a0c386e14c2c68) Capybara 2.7 support
6
+ - [6e43a9e](https://github.com/appium/appium_capybara/commit/6e43a9e77e8e7186b45a9a7c9650ab4a5af750e8) End file appium_capybara.rb with new line
7
+ - [a1d776d](https://github.com/appium/appium_capybara/commit/a1d776d1b89aff5a0c340f58ec2df062989b70e0) Fix for wrong attribute used in resolve_for
8
+ - [0aa208b](https://github.com/appium/appium_capybara/commit/0aa208be11e78d82f3fec4011daec13c71d588fa) Update extensions of Capybara classes to support version 2.7
9
+ - [834d0b1](https://github.com/appium/appium_capybara/commit/834d0b1a15b2f447a8ba10ef2f5d93f62a6f29e6) Merge pull request #25 from appium/fix_query
10
+ - [a68a6f3](https://github.com/appium/appium_capybara/commit/a68a6f3f0247c056c2475982ab18aba57783e34c) Query extension now uses expression instead of locator
11
+ - [7695c14](https://github.com/appium/appium_capybara/commit/7695c141aef4635923317980916ee8b263b47acd) Merge pull request #24 from vgrigoruk/master
12
+ - [580a476](https://github.com/appium/appium_capybara/commit/580a4769fc1ce2d631cc2b59598f007e4a3f63d3) make sure app is running when making a screenshot. Auto-quit driver when test session ends
13
+ - [697a000](https://github.com/appium/appium_capybara/commit/697a0004930d1d74e19b6b6603b58300845aaa7c) Update example for iOS 8
14
+
15
+
1
16
  #### v1.2.1 2014-12-29
2
17
 
3
- - [57ad02c](https://github.com/appium/appium_capybara/commit/57ad02c3aac2c34f5710149bff6ea92d5309d421) Release 1.2.1
4
18
  - [1ab8564](https://github.com/appium/appium_capybara/commit/1ab856478e7495347dbbd5d2737c9cc55106b3bf) Release 1.2.1
5
19
  - [97de881](https://github.com/appium/appium_capybara/commit/97de8812b54d84d2a4681672c436f06609080334) Loosen restriction on ruby_lib version
6
20
  - [691164f](https://github.com/appium/appium_capybara/commit/691164f033e6b952ca1fe2ce131a40c76c03e825) Update contributing.md
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_capybara
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - scott.bonebrake@gmail.com
@@ -10,60 +10,54 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-12-29 00:00:00.000000000 Z
13
+ date: 2016-04-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: appium_lib
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ">="
19
+ - - '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: 4.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ">="
26
+ - - '>='
27
27
  - !ruby/object:Gem::Version
28
28
  version: 4.1.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: capybara
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - "~>"
33
+ - - ~>
34
34
  - !ruby/object:Gem::Version
35
- version: '2.4'
36
- - - ">="
37
- - !ruby/object:Gem::Version
38
- version: 2.4.1
35
+ version: '2.7'
39
36
  type: :runtime
40
37
  prerelease: false
41
38
  version_requirements: !ruby/object:Gem::Requirement
42
39
  requirements:
43
- - - "~>"
44
- - !ruby/object:Gem::Version
45
- version: '2.4'
46
- - - ">="
40
+ - - ~>
47
41
  - !ruby/object:Gem::Version
48
- version: 2.4.1
42
+ version: '2.7'
49
43
  - !ruby/object:Gem::Dependency
50
44
  name: appium_thor
51
45
  requirement: !ruby/object:Gem::Requirement
52
46
  requirements:
53
- - - "~>"
47
+ - - ~>
54
48
  - !ruby/object:Gem::Version
55
49
  version: '0.0'
56
- - - ">="
50
+ - - '>='
57
51
  - !ruby/object:Gem::Version
58
52
  version: 0.0.7
59
53
  type: :development
60
54
  prerelease: false
61
55
  version_requirements: !ruby/object:Gem::Requirement
62
56
  requirements:
63
- - - "~>"
57
+ - - ~>
64
58
  - !ruby/object:Gem::Version
65
59
  version: '0.0'
66
- - - ">="
60
+ - - '>='
67
61
  - !ruby/object:Gem::Version
68
62
  version: 0.0.7
69
63
  description: Enables appium support in Capybara.
@@ -75,7 +69,7 @@ executables: []
75
69
  extensions: []
76
70
  extra_rdoc_files: []
77
71
  files:
78
- - ".gitignore"
72
+ - .gitignore
79
73
  - Gemfile
80
74
  - LICENSE-2.0.txt
81
75
  - README.md
@@ -92,11 +86,9 @@ files:
92
86
  - lib/appium_capybara.rb
93
87
  - lib/appium_capybara/driver/appium/driver.rb
94
88
  - lib/appium_capybara/driver/appium/node.rb
95
- - lib/appium_capybara/driver/base_ext.rb
96
89
  - lib/appium_capybara/ext/base_ext.rb
97
- - lib/appium_capybara/ext/query_ext.rb
98
90
  - lib/appium_capybara/ext/selector_ext.rb
99
- - lib/appium_capybara/ext/session_ext.rb
91
+ - lib/appium_capybara/ext/selector_query_ext.rb
100
92
  - lib/appium_capybara/version.rb
101
93
  - release_notes.md
102
94
  homepage: https://github.com/appium/appium_capybara
@@ -109,12 +101,12 @@ require_paths:
109
101
  - lib
110
102
  required_ruby_version: !ruby/object:Gem::Requirement
111
103
  requirements:
112
- - - ">="
104
+ - - '>='
113
105
  - !ruby/object:Gem::Version
114
106
  version: 1.9.3
115
107
  required_rubygems_version: !ruby/object:Gem::Requirement
116
108
  requirements:
117
- - - ">="
109
+ - - '>='
118
110
  - !ruby/object:Gem::Version
119
111
  version: '0'
120
112
  requirements: []
@@ -1,5 +0,0 @@
1
- class Capybara::Driver::Base
2
- def browser_initialized?
3
- true
4
- end
5
- end
@@ -1,16 +0,0 @@
1
- module Capybara
2
- class Session
3
- def reset!
4
- # Work around for issue https://github.com/jnicklas/capybara/issues/1237
5
- browser_initialized = driver.respond_to?(:browser_initialized?) ? driver.browser_initialized? : true
6
-
7
- if @touched && browser_initialized
8
- driver.reset!
9
- # Ugly hack to not run this assertion for Appium
10
- assert_no_selector(:xpath, "/html/body/*") unless driver.instance_of? Appium::Capybara::Driver
11
- @touched = false
12
- end
13
- raise_server_error!
14
- end
15
- end
16
- end