sparkling_watir 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb2b6d1396c00f3a2e8456284f6b65dff1280bd79dd20d1e8f3188eb1006248f
4
- data.tar.gz: 823a50280dec7f29ba2b2b9c4d0009f5568f206cff41ec2b723af53016c0b071
3
+ metadata.gz: 7a87414a7834c36844d2e47020d15d809b925d344bf8d9f4fd9874c108834320
4
+ data.tar.gz: 6ca3f1ae39508f054faafb8f4ea9a91763e55e428fa59c2d77c4540df456000c
5
5
  SHA512:
6
- metadata.gz: 3d3298d8f14bf3c2b4928937be8199cd47852b37e30a3f44f6735dd7cf16c6504bc218a3ec4f1e1547333d3a4ab086226940317ab3ed45bf78d45e7360e6cf5e
7
- data.tar.gz: f6a4244e7bda0712f10879d3c39f70f75f5232974ab5bedbe1df0a2abaed6e9f14149167f8839ddc4b93185f4fd694c526fa44ebfd31866fc7f9c7edf23362b5
6
+ metadata.gz: 9355fff2a6b746a97e4504c8a69a155bed70acb73c27a0cf4a05a293aae62113bb0f0d22ddafa5fac8dedf85107ed48a90db83849261922753b98a8fdf45f7d2
7
+ data.tar.gz: 3ded479d13da1803805a6662fbc20f5a392a4bc2396d7ccaa68ef99c033d0bbf97a1e8559e40e3601b188ddffe2ed237c916efec26bbb51d6431e99a2fa35044
data/.rubocop.yml CHANGED
@@ -0,0 +1,6 @@
1
+ require:
2
+ - rubocop-rspec
3
+ - rubocop-performance
4
+
5
+ Metrics/BlockLength:
6
+ Max: 150
data/Gemfile CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
- gemspec
5
+ gemspec
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Watir for testing your Mobile Devices. Powered by Appium.
4
4
  This project is a revamp of [Tap watir](https://github.com/watir/tap_watir).
5
5
 
6
- All the inspiration from this project is taking from Tap Watir, so all the credit goes
6
+ All the inspiration from this project is taken from Tap Watir, so all the credit goes
7
7
  to the original creators and contributors
8
8
 
9
9
  If you don't know the watir project here is the [link to the project](http://watir.com/)
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yaml'
2
4
 
3
5
  desc 'Changes the default platform'
@@ -5,4 +7,4 @@ task :platform, [:platform] do |_t, args|
5
7
  config = YAML.load_file('./spec/config/caps.yml')
6
8
  config['default_platform'] = args.platform
7
9
  File.open('./spec/config/caps.yml', 'w') { |file| YAML.dump(config, file) }
8
- end
10
+ end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require_relative 'gestures'
3
4
  require_relative 'wait'
4
5
 
@@ -7,7 +8,6 @@ module SparklingWatir
7
8
  # This is a element in the native app context
8
9
  #
9
10
  class Element
10
- include Gestures
11
11
  include Waitable
12
12
 
13
13
  def initialize(driver, selector)
@@ -25,6 +25,7 @@ module SparklingWatir
25
25
  rescue Watir::Exception::UnknownObjectException
26
26
  false
27
27
  end
28
+
28
29
  alias exist? exists?
29
30
 
30
31
  def present?
@@ -33,6 +34,7 @@ module SparklingWatir
33
34
  rescue Watir::Exception::UnknownObjectException
34
35
  false
35
36
  end
37
+
36
38
  alias visible? present?
37
39
 
38
40
  def enabled?
@@ -43,11 +45,14 @@ module SparklingWatir
43
45
  end
44
46
 
45
47
  def coordinates
48
+ assert_exists
46
49
  @element.location
47
50
  end
51
+
48
52
  alias location coordinates
49
53
 
50
54
  def size
55
+ assert_exists
51
56
  @element.size
52
57
  end
53
58
 
@@ -55,6 +60,17 @@ module SparklingWatir
55
60
  { x: coordinates.x + size.width, y: coordinates.y + size.height }
56
61
  end
57
62
 
63
+ def center
64
+ {
65
+ x: coordinates[:x] + size.width / 2,
66
+ y: coordinates[:y] + size.height / 2
67
+ }
68
+ end
69
+
70
+ def attribute(attribute_name)
71
+ wd.attribute(attribute_name)
72
+ end
73
+
58
74
  private
59
75
 
60
76
  def locate
@@ -1,9 +1,10 @@
1
- require 'appium_lib_core/common/touch_action/touch_actions'
1
+ # frozen_string_literal: true
2
+
2
3
  require 'selenium/webdriver/common/interactions/interactions'
3
4
 
4
5
  module SparklingWatir
6
+ # This module handles all the possible gestures
5
7
  module Gestures
6
-
7
8
  VIEWPORT = ::Selenium::WebDriver::Interactions::PointerMove::VIEWPORT
8
9
 
9
10
  def action(kind, name)
@@ -14,26 +15,88 @@ module SparklingWatir
14
15
  @driver.perform_actions actions
15
16
  end
16
17
 
17
- def tap
18
+ def tap(opts = {})
19
+ coordinates = { x: opts[:x] || opts[:on].center[:x], y: opts[:y] || opts[:on].center[:y] }
18
20
  tap = action(:touch, 'tap')
19
- tap.create_pointer_move(duration: 0.1, x: bounds[:x], y: bounds[:y] - 1, origin: VIEWPORT)
21
+ tap.create_pointer_move(duration: 0.1, x: coordinates[:x], y: coordinates[:y], origin: VIEWPORT)
20
22
  tap.create_pointer_down(:left)
23
+ tap.create_pause(opts[:duration] || 0)
21
24
  tap.create_pointer_up(:left)
22
25
  perform tap
23
26
  end
24
27
 
25
28
  alias press tap
26
29
 
27
- def double_tap
30
+ def double_tap(opts = {})
28
31
  double_tap = action(:touch, 'double_tap')
29
- double_tap.create_pointer_move(duration: 0.1, x: bounds[:x], y: bounds[:y] - 1, origin: VIEWPORT)
32
+ coordinates = { x: opts[:x] || opts[:on].center[:x], y: opts[:y] || opts[:on].center[:y] }
33
+ double_tap.create_pointer_move(duration: 0, x: coordinates[:x], y: coordinates[:y], origin: VIEWPORT)
30
34
  double_tap.create_pointer_down(:left)
35
+ double_tap.create_pause(0.1)
31
36
  double_tap.create_pointer_up(:left)
32
- double_tap.create_pause(0.5)
37
+ double_tap.create_pause(0.1)
33
38
  double_tap.create_pointer_down(:left)
39
+ double_tap.create_pause(0.1)
34
40
  double_tap.create_pointer_up(:left)
35
41
 
36
42
  perform double_tap
37
43
  end
44
+
45
+ def long_press(opts = {})
46
+ tap(duration: opts[:duration] || 0.5, on: opts[:on])
47
+ end
48
+
49
+ def swipe(opts = {})
50
+ coordinates = select_direction(opts[:to], opts[:direction])
51
+ execute_swipe(coordinates)
52
+ end
53
+
54
+ private
55
+
56
+ def execute_swipe(coordinates)
57
+ finger = action(:touch, 'swipe')
58
+ finger.create_pointer_move(duration: 0, x: coordinates[:start_coordinates][:x],
59
+ y: coordinates[:start_coordinates][:y],
60
+ origin: VIEWPORT)
61
+ finger.create_pointer_down(:left)
62
+ finger.create_pause(0.6)
63
+ finger.create_pointer_move(duration: 0.6, x: coordinates[:end_coordinates][:x],
64
+ y: coordinates[:end_coordinates][:y],
65
+ origin: VIEWPORT)
66
+ finger.create_pointer_up(:left)
67
+ finger.create_pointer_down(:left)
68
+
69
+ perform finger
70
+ end
71
+
72
+ def select_direction(element, direction)
73
+ case direction
74
+ when :down
75
+ start_x = element.center[:x]
76
+ start_y = @driver.window_size.height * 0.8
77
+ end_x = element.center[:x]
78
+ end_y = element.center[:y]
79
+ when :up
80
+ start_x = @driver.window_size.width / 2
81
+ start_y = @driver.window_size.height * 0.2
82
+ end_x = element.center[:x]
83
+ end_y = element.center[:y] / 0.5
84
+ when :left
85
+ start_x = @driver.window_size.width
86
+ start_y = element.center[:y]
87
+ end_x = element.center[:x]
88
+ end_y = element.center[:y]
89
+ when :right
90
+ start_x = @driver.window_size.width
91
+ start_y = element.center[:y]
92
+ end_x = element.center[:x]
93
+ end_y = element.center[:y]
94
+ else raise "You selected an invalid direction. The valid directions are: :down, :up, :left, :right"
95
+ end
96
+ {
97
+ start_coordinates: { x: start_x, y: start_y },
98
+ end_coordinates: { x: end_x, y: end_y }
99
+ }
100
+ end
38
101
  end
39
102
  end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'forwardable'
16
+ require 'logger'
17
+
18
+ module SparklingWatir
19
+ module Logger
20
+ #
21
+ # @example Use logger manually
22
+ # SparklingWatir::Logger.debug('This is info message')
23
+ # SparklingWatir::Logger.warn('This is warning message')
24
+ #
25
+ class << self
26
+ extend Forwardable
27
+ def_delegators :logger, :fatal, :error, :warn, :info, :debug, :level, :level=, :formatter, :formatter=
28
+
29
+ attr_writer :logger
30
+
31
+ private
32
+
33
+ def logger
34
+ @logger ||= begin
35
+ logger = ::Logger.new($stdout)
36
+ logger.progname = 'sparkling_watir'
37
+ logger.level = ::Logger::WARN
38
+ logger.formatter = proc { |_severity, _datetime, _progname, msg| "#{msg}\n" }
39
+ logger
40
+ end
41
+ end
42
+ end # class << self
43
+ end # module Logger
44
+ end # module SparklingWatir
@@ -0,0 +1,50 @@
1
+ module SparklingWatir
2
+ class Screenshot
3
+ attr_reader :driver
4
+
5
+ def initialize(driver)
6
+ @driver = driver
7
+ end
8
+
9
+ #
10
+ # Saves screenshot to given path.
11
+ #
12
+ # @example
13
+ # driver.screenshot.save "screenshot.png"
14
+ #
15
+ # @param [String] path
16
+ #
17
+
18
+ def save(path)
19
+ driver.save_screenshot(path)
20
+ end
21
+
22
+ #
23
+ # Represents screenshot as PNG image string.
24
+ #
25
+ # @example
26
+ # driver.screenshot.png
27
+ # #=> '\x95\xC7\x8C@1\xC07\x1C(Edb\x15\xB2\vL'
28
+ #
29
+ # @return [String]
30
+ #
31
+
32
+ def png
33
+ driver.screenshot_as(:png)
34
+ end
35
+
36
+ #
37
+ # Represents screenshot as Base64 encoded string.
38
+ #
39
+ # @example
40
+ # driver.screenshot.base64
41
+ # #=> '7HWJ43tZDscPleeUuPW6HhN3x+z7vU/lufmH0qNTtTum94IBWMT46evImci1vnFGT'
42
+ #
43
+ # @return [String]
44
+ #
45
+
46
+ def base64
47
+ driver.screenshot_as(:base64)
48
+ end
49
+ end # Screenshot
50
+ end # SparklingWatir
@@ -1,5 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SparklingWatir
2
4
  module Wait
5
+ # This class provides the time use on waits
3
6
  class Timer
4
7
  def initialize(timeout: nil)
5
8
  @end_time = timeout ? current_time + timeout : nil
@@ -45,6 +48,6 @@ module SparklingWatir
45
48
  ::Time.now.to_f
46
49
  end
47
50
  end
48
- end # Timer
49
- end # Wait
50
- end # SparklingWatir
51
+ end
52
+ end
53
+ end
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'wait/timer'
2
4
 
3
5
  module SparklingWatir
6
+ # This module is in charge of handling all the waits
4
7
  module Wait
5
8
  class TimeoutError < StandardError; end
6
9
 
@@ -38,7 +41,7 @@ module SparklingWatir
38
41
  result = yield(object)
39
42
  return result if result
40
43
  end
41
- raise TimeoutError, message_for(timeout, object, message)
44
+ raise TimeoutError, message_for(timeout, object, message)
42
45
  end
43
46
 
44
47
  #
@@ -79,9 +82,10 @@ module SparklingWatir
79
82
  end
80
83
  end
81
84
  end
82
- end # self
83
- end # Wait
85
+ end
86
+ end
84
87
 
88
+ # THis module provides wait utility methods
85
89
  module Waitable
86
90
  #
87
91
  # Waits until the condition is true.
@@ -129,21 +133,18 @@ module SparklingWatir
129
133
  proc do
130
134
  opt.keys.all? do |key|
131
135
  expected = opt[key]
132
- actual = if is_a?(Element) && !respond_to?(key)
133
- attribute_value(key)
134
- else
135
- send(key)
136
- end
137
- case expected
138
- when Regexp
139
- expected =~ actual
140
- when Numeric
141
- expected == actual
142
- else
143
- expected.to_s == actual
144
- end
136
+ actual = is_a?(Element) && !respond_to?(key) ? attribute_value(key) : send(key)
137
+ compare_attributes(actual, expected)
145
138
  end
146
139
  end
147
140
  end
148
- end # Waitable
149
- end # SparklingWatir
141
+
142
+ def compare_attributes(actual, expected)
143
+ case expected
144
+ when Regexp then expected =~ actual
145
+ when Numeric then expected == actual
146
+ else expected.to_s == actual
147
+ end
148
+ end
149
+ end
150
+ end
@@ -1,20 +1,27 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'appium_lib_core'
2
4
  require 'watir'
5
+ require_relative './sparkling_watir/gestures'
6
+ require_relative './sparkling_watir/logger'
7
+ require_relative './sparkling_watir/screenshot'
3
8
 
4
9
  module SparklingWatir
5
10
  #
6
- # For driving a native application or a native app context
11
+ # For driving a native application
7
12
  #
8
13
  class App
9
14
  attr_accessor :driver
10
15
 
16
+ include Gestures
17
+
11
18
  def initialize(opts)
12
- url = opts[:caps].delete(:url)
19
+ url = opts[:caps]['url']
13
20
  @driver = Appium::Core::Driver.for(opts).start_driver(server_url: url)
14
21
  end
15
22
 
16
23
  def quit
17
- @driver.quit
24
+ driver.quit
18
25
  end
19
26
 
20
27
  alias close quit
@@ -23,6 +30,10 @@ module SparklingWatir
23
30
  Element.new(driver, selector)
24
31
  end
25
32
 
33
+ def screenshot
34
+ Screenshot.new self
35
+ end
36
+
26
37
  def method_missing(method_name, *arguments, &block)
27
38
  if driver.respond_to? method_name
28
39
  driver.send method_name, *arguments, &block
@@ -5,12 +5,12 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'sparkling_watir'
8
- spec.version = '0.0.2'
8
+ spec.version = '0.0.4'
9
9
  spec.authors = ['Agustin Pequeno']
10
10
  spec.email = ['agustin.pe94@gmail.com']
11
11
 
12
12
  spec.summary = 'A watir adaptation for testing your native mobile apps'
13
- spec.description = 'Sparkling watir takes heavy inspiration from tap watir and tries to provide a mobile adaptation of watir'
13
+ spec.description = 'Sparkling watir takes heavy inspiration from tap watir and is a mobile adaptation of watir'
14
14
  spec.license = 'MIT'
15
15
 
16
16
  # Specify which files should be added to the gem when it is released.
@@ -22,11 +22,13 @@ Gem::Specification.new do |spec|
22
22
  spec.require_paths = ['lib']
23
23
  spec.required_ruby_version = '>= 2.7.0'
24
24
 
25
- spec.add_development_dependency 'bundler', '~> 2.3.17'
25
+ spec.add_development_dependency 'bundler', '~> 2.4.14'
26
26
  spec.add_development_dependency 'rake', '~> 13.0.6'
27
27
  spec.add_development_dependency 'rspec', '~> 3.11.0'
28
- spec.add_development_dependency 'rubocop', '~> 0.50'
28
+ spec.add_development_dependency 'rubocop', '~> 1.27'
29
+ spec.add_development_dependency 'rubocop-performance', '~> 1.15.0'
30
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.9.0'
29
31
 
30
- spec.add_dependency 'appium_lib_core', '~>5.3.0 '
32
+ spec.add_dependency 'appium_lib_core', '~>7.0.0 '
31
33
  spec.add_dependency 'watir', '~> 7.1.0'
32
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sparkling_watir
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pequeno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-13 00:00:00.000000000 Z
11
+ date: 2023-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.3.17
19
+ version: 2.4.14
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.3.17
26
+ version: 2.4.14
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,28 +58,56 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.50'
61
+ version: '1.27'
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: '0.50'
68
+ version: '1.27'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop-performance
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.15.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 1.15.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 2.9.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 2.9.0
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: appium_lib_core
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - "~>"
74
102
  - !ruby/object:Gem::Version
75
- version: 5.3.0
103
+ version: 7.0.0
76
104
  type: :runtime
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
- version: 5.3.0
110
+ version: 7.0.0
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: watir
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -94,8 +122,8 @@ dependencies:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
124
  version: 7.1.0
97
- description: Sparkling watir takes heavy inspiration from tap watir and tries to provide
98
- a mobile adaptation of watir
125
+ description: Sparkling watir takes heavy inspiration from tap watir and is a mobile
126
+ adaptation of watir
99
127
  email:
100
128
  - agustin.pe94@gmail.com
101
129
  executables: []
@@ -103,19 +131,15 @@ extensions: []
103
131
  extra_rdoc_files: []
104
132
  files:
105
133
  - ".gitignore"
106
- - ".idea/.gitignore"
107
- - ".idea/misc.xml"
108
- - ".idea/modules.xml"
109
- - ".idea/sparkling_watir.iml"
110
- - ".idea/vcs.xml"
111
134
  - ".rubocop.yml"
112
135
  - Gemfile
113
- - Gemfile.lock
114
136
  - README.md
115
137
  - Rakefile
116
138
  - lib/sparkling_watir.rb
117
139
  - lib/sparkling_watir/element.rb
118
140
  - lib/sparkling_watir/gestures.rb
141
+ - lib/sparkling_watir/logger.rb
142
+ - lib/sparkling_watir/screenshot.rb
119
143
  - lib/sparkling_watir/wait.rb
120
144
  - lib/sparkling_watir/wait/timer.rb
121
145
  - sparkling_watir.gemspec
data/.idea/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- # Default ignored files
2
- /shelf/
3
- /workspace.xml
4
- # Editor-based HTTP Client requests
5
- /httpRequests/
6
- # Datasource local storage ignored files
7
- /dataSources/
8
- /dataSources.local.xml
data/.idea/misc.xml DELETED
@@ -1,4 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-3.1.0" project-jdk-type="RUBY_SDK" />
4
- </project>
data/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/sparkling_watir.iml" filepath="$PROJECT_DIR$/.idea/sparkling_watir.iml" />
6
- </modules>
7
- </component>
8
- </project>
@@ -1,48 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="RUBY_MODULE" version="4">
3
- <component name="ModuleRunConfigurationManager">
4
- <shared />
5
- </component>
6
- <component name="NewModuleRootManager">
7
- <content url="file://$MODULE_DIR$">
8
- <sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
9
- <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
10
- <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
11
- </content>
12
- <orderEntry type="inheritedJdk" />
13
- <orderEntry type="sourceFolder" forTests="false" />
14
- <orderEntry type="library" scope="PROVIDED" name="appium_lib_core (v5.3.0, RVM: ruby-3.1.0) [gem]" level="application" />
15
- <orderEntry type="library" scope="PROVIDED" name="ast (v2.4.2, RVM: ruby-3.1.0) [gem]" level="application" />
16
- <orderEntry type="library" scope="PROVIDED" name="bundler (v2.3.17, RVM: ruby-3.1.0) [gem]" level="application" />
17
- <orderEntry type="library" scope="PROVIDED" name="childprocess (v4.1.0, RVM: ruby-3.1.0) [gem]" level="application" />
18
- <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.5.0, RVM: ruby-3.1.0) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="eventmachine (v1.2.7, RVM: ruby-3.1.0) [gem]" level="application" />
20
- <orderEntry type="library" scope="PROVIDED" name="faye-websocket (v0.11.1, RVM: ruby-3.1.0) [gem]" level="application" />
21
- <orderEntry type="library" scope="PROVIDED" name="parallel (v1.22.1, RVM: ruby-3.1.0) [gem]" level="application" />
22
- <orderEntry type="library" scope="PROVIDED" name="parser (v3.1.2.1, RVM: ruby-3.1.0) [gem]" level="application" />
23
- <orderEntry type="library" scope="PROVIDED" name="rainbow (v3.1.1, RVM: ruby-3.1.0) [gem]" level="application" />
24
- <orderEntry type="library" scope="PROVIDED" name="rake (v13.0.6, RVM: ruby-3.1.0) [gem]" level="application" />
25
- <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.5.0, RVM: ruby-3.1.0) [gem]" level="application" />
26
- <orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.5, RVM: ruby-3.1.0) [gem]" level="application" />
27
- <orderEntry type="library" scope="PROVIDED" name="rspec (v3.11.0, RVM: ruby-3.1.0) [gem]" level="application" />
28
- <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.11.0, RVM: ruby-3.1.0) [gem]" level="application" />
29
- <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.11.0, RVM: ruby-3.1.0) [gem]" level="application" />
30
- <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.11.1, RVM: ruby-3.1.0) [gem]" level="application" />
31
- <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.11.0, RVM: ruby-3.1.0) [gem]" level="application" />
32
- <orderEntry type="library" scope="PROVIDED" name="rubocop (v0.93.1, RVM: ruby-3.1.0) [gem]" level="application" />
33
- <orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v1.21.0, RVM: ruby-3.1.0) [gem]" level="application" />
34
- <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.11.0, RVM: ruby-3.1.0) [gem]" level="application" />
35
- <orderEntry type="library" scope="PROVIDED" name="rubyzip (v2.3.2, RVM: ruby-3.1.0) [gem]" level="application" />
36
- <orderEntry type="library" scope="PROVIDED" name="selenium-webdriver (v4.4.0, RVM: ruby-3.1.0) [gem]" level="application" />
37
- <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v1.8.0, RVM: ruby-3.1.0) [gem]" level="application" />
38
- <orderEntry type="library" scope="PROVIDED" name="watir (v7.1.0, RVM: ruby-3.1.0) [gem]" level="application" />
39
- <orderEntry type="library" scope="PROVIDED" name="websocket (v1.2.9, RVM: ruby-3.1.0) [gem]" level="application" />
40
- <orderEntry type="library" scope="PROVIDED" name="websocket-driver (v0.7.5, RVM: ruby-3.1.0) [gem]" level="application" />
41
- <orderEntry type="library" scope="PROVIDED" name="websocket-extensions (v0.1.5, RVM: ruby-3.1.0) [gem]" level="application" />
42
- </component>
43
- <component name="RakeTasksCache">
44
- <option name="myRootTask">
45
- <RakeTaskImpl id="rake" />
46
- </option>
47
- </component>
48
- </module>
data/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
- </component>
6
- </project>
data/Gemfile.lock DELETED
@@ -1,79 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- sparkling_watir (0.0.2)
5
- appium_lib_core (~> 5.3.0)
6
- watir (~> 7.1.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- appium_lib_core (5.3.0)
12
- faye-websocket (~> 0.11.0)
13
- selenium-webdriver (~> 4.2, < 4.5)
14
- ast (2.4.2)
15
- childprocess (4.1.0)
16
- diff-lcs (1.5.0)
17
- eventmachine (1.2.7)
18
- faye-websocket (0.11.1)
19
- eventmachine (>= 0.12.0)
20
- websocket-driver (>= 0.5.1)
21
- parallel (1.22.1)
22
- parser (3.1.2.1)
23
- ast (~> 2.4.1)
24
- rainbow (3.1.1)
25
- rake (13.0.6)
26
- regexp_parser (2.5.0)
27
- rexml (3.2.5)
28
- rspec (3.11.0)
29
- rspec-core (~> 3.11.0)
30
- rspec-expectations (~> 3.11.0)
31
- rspec-mocks (~> 3.11.0)
32
- rspec-core (3.11.0)
33
- rspec-support (~> 3.11.0)
34
- rspec-expectations (3.11.0)
35
- diff-lcs (>= 1.2.0, < 2.0)
36
- rspec-support (~> 3.11.0)
37
- rspec-mocks (3.11.1)
38
- diff-lcs (>= 1.2.0, < 2.0)
39
- rspec-support (~> 3.11.0)
40
- rspec-support (3.11.0)
41
- rubocop (0.93.1)
42
- parallel (~> 1.10)
43
- parser (>= 2.7.1.5)
44
- rainbow (>= 2.2.2, < 4.0)
45
- regexp_parser (>= 1.8)
46
- rexml
47
- rubocop-ast (>= 0.6.0)
48
- ruby-progressbar (~> 1.7)
49
- unicode-display_width (>= 1.4.0, < 2.0)
50
- rubocop-ast (1.21.0)
51
- parser (>= 3.1.1.0)
52
- ruby-progressbar (1.11.0)
53
- rubyzip (2.3.2)
54
- selenium-webdriver (4.4.0)
55
- childprocess (>= 0.5, < 5.0)
56
- rexml (~> 3.2, >= 3.2.5)
57
- rubyzip (>= 1.2.2, < 3.0)
58
- websocket (~> 1.0)
59
- unicode-display_width (1.8.0)
60
- watir (7.1.0)
61
- regexp_parser (>= 1.2, < 3)
62
- selenium-webdriver (~> 4.0)
63
- websocket (1.2.9)
64
- websocket-driver (0.7.5)
65
- websocket-extensions (>= 0.1.0)
66
- websocket-extensions (0.1.5)
67
-
68
- PLATFORMS
69
- arm64-darwin-21
70
-
71
- DEPENDENCIES
72
- bundler (~> 2.3.17)
73
- rake (~> 13.0.6)
74
- rspec (~> 3.11.0)
75
- rubocop (~> 0.50)
76
- sparkling_watir!
77
-
78
- BUNDLED WITH
79
- 2.3.17