testa_appium_driver 0.1.27 → 0.1.30

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: 86f165c0d386a0dcfeb1ff295c197918f548d179efaf44b028b19d6eeeaf13bc
4
- data.tar.gz: 6cb61fa0a022941c09a4a8da1f4b49b5dda6bad1920fbe7ec11b5b55e126dad8
3
+ metadata.gz: 3521033bcda4e9b61fd523c8aa716c6bcfd99dc9e2ff820bf823adea8f4582c0
4
+ data.tar.gz: 2443236705abef799f76de8a03db745b972f3ff9092b9b19a689a20aba329c21
5
5
  SHA512:
6
- metadata.gz: 68f412d7a7dcc1693458b162bad6b8d36f8548640ac930271fbe97e05f58263233d9c277879979d35312473d56aac8b3449ed256fef00b139bb197ea29235fed
7
- data.tar.gz: '08fe1ebd108676283b016dc7412e98df90eb7f5fd22e774aad7239418c1f66f93f5c16d46921ffaad3d0e78f18b5aa0200fdb0a4d0c2ff7dbdc1d3686de06996'
6
+ metadata.gz: 6648e41a86d22e367bfef3b77d9db4ae5381b2bd5d787a875d2f77d8c842c7bcc4b65a450d608bbe7a0b006af47ab0fe21ccb120cb26b9c8e1f2f441c7f22d02
7
+ data.tar.gz: edd62bab2c971aa7334bf2521a9a5c91447a8892e94a1834a74c7e09fb69368c5c3b91b9d2bea20c14c9f5b36a751dc85932896b4c4b917db0cb44a4f34f570c
@@ -7,8 +7,6 @@ module TestaAppiumDriver
7
7
  class Driver
8
8
  include ClassSelectors
9
9
 
10
-
11
-
12
10
  # executes shell command
13
11
  # @param [String] command Shell command name to execute for example echo or rm
14
12
  # @param [Array<String>] args Array of command arguments, example: ['-f', '/sdcard/my_file.txt']
@@ -16,33 +14,30 @@ module TestaAppiumDriver
16
14
  # @param [Boolean] includeStderr Whether to include stderr stream into the returned result.
17
15
  def shell(command, args: nil, timeout: nil, includeStderr: true)
18
16
  params = {
19
- command: command,
20
- includeStderr: includeStderr
17
+ command: command,
18
+ includeStderr: includeStderr,
21
19
  }
22
20
  params[:args] = args unless args.nil?
23
21
  params[:timeout] = timeout unless timeout.nil?
24
22
  @driver.execute_script("mobile: shell", params)
25
23
  end
26
24
 
27
-
28
25
  def scrollable
29
- locator = Locator.new(self, self, {single: true})
26
+ locator = Locator.new(self, self, { single: true })
30
27
  locator.xpath_selector = "//androidx.recyclerview.widget.RecyclerView|//android.widget.ScrollView|//android.widget.ListView|//android.widget.HorizontalScrollView"
31
28
  locator.ui_selector = "new UiSelector().scrollable(true).instance(0)"
32
29
  locator
33
30
  end
34
31
 
35
-
36
32
  def scrollables
37
- locator = Locator.new(self, self, {single: false})
33
+ locator = Locator.new(self, self, { single: false })
38
34
  locator.xpath_selector = "//androidx.recyclerview.widget.RecyclerView|//android.widget.ScrollView|//android.widget.ListView|//android.widget.HorizontalScrollView"
39
35
  locator.ui_selector = "new UiSelector().scrollable(true)"
40
36
  locator
41
37
  end
42
38
 
43
-
44
-
45
39
  private
40
+
46
41
  def handle_testa_opts
47
42
  if @testa_opts[:default_find_strategy].nil?
48
43
  @default_find_strategy = DEFAULT_ANDROID_FIND_STRATEGY
@@ -55,7 +50,6 @@ module TestaAppiumDriver
55
50
  end
56
51
  end
57
52
 
58
-
59
53
  if @testa_opts[:default_scroll_strategy].nil?
60
54
  @default_scroll_strategy = DEFAULT_ANDROID_SCROLL_STRATEGY
61
55
  else
@@ -68,4 +62,4 @@ module TestaAppiumDriver
68
62
  end
69
63
  end
70
64
  end
71
- end
65
+ end
@@ -25,15 +25,11 @@ module ::TestaAppiumDriver
25
25
  align_with = :top
26
26
  end
27
27
 
28
- if @driver.ios?
29
- # if true
30
- w3c_scroll_each_ios(direction, align_with, &block)
31
- else
32
- w3c_scroll_each_android(direction, align_with, &block)
33
- end
28
+ w3c_scroll_each_v2(direction, align_with, &block)
34
29
  end
35
30
 
36
- def w3c_scroll_each_android(direction, align_with, &block)
31
+ # @deprecated
32
+ def w3c_scroll_each_v1(direction, align_with, &block)
37
33
  elements = []
38
34
  begin
39
35
 
@@ -42,14 +38,14 @@ module ::TestaAppiumDriver
42
38
  previous_element = nil
43
39
 
44
40
  until is_end_of_scroll?
45
- # # $__.puts "-- new iteration"
46
- # # $__.puts "-------------"
41
+ # $__.puts "-- new iteration"
42
+ # $__.puts "-------------"
47
43
  aligned_items = 0
48
44
  new_ignore_element_ids = []
49
45
  matches = @locator.execute(skip_cache: true)
50
46
  matches.each_with_index do |m, index|
51
- # # $__.puts "Matches: #{matches.count}"
52
- # # $__.puts "M: #{m.id}"
47
+ # $__.puts "Matches: #{matches.count}"
48
+ # $__.puts "M: #{m.id}"
53
49
  if ignore_element_ids.include?(m.id)
54
50
  previous_element = m
55
51
  next
@@ -95,7 +91,7 @@ module ::TestaAppiumDriver
95
91
  elements
96
92
  end
97
93
 
98
- def w3c_scroll_each_ios(direction, align_with, &block)
94
+ def w3c_scroll_each_v2(direction, align_with, &block)
99
95
  elements = []
100
96
  elements_in_current_iteration = []
101
97
  stale_retries = 0
@@ -245,8 +241,7 @@ module ::TestaAppiumDriver
245
241
  max_scrolls_reached = false
246
242
  end_of_scroll_reached = false
247
243
  # $ctx.puts("starting scroll to")
248
- until (@driver.android? && @locator.exists?) ||
249
- (@driver.ios? && @locator.exists? && @locator.in_viewport?) || end_of_scroll_reached
244
+ until (element_found = ((@driver.android? && @locator.exists?) || (@driver.ios? && @locator.exists? && @locator.in_viewport?))) || end_of_scroll_reached
250
245
  # $ctx.puts("Scroll to round: #{rounds}")
251
246
  end_of_scroll_reached = is_end_of_scroll?
252
247
  case direction
@@ -274,7 +269,7 @@ module ::TestaAppiumDriver
274
269
  break if rounds == @max_scrolls
275
270
  end
276
271
  # $ctx.puts("end scroll to")
277
- raise Selenium::WebDriver::Error::NoSuchElementError if max_scrolls_reached || end_of_scroll_reached
272
+ raise Selenium::WebDriver::Error::NoSuchElementError if (max_scrolls_reached || end_of_scroll_reached) && !element_found
278
273
  end
279
274
 
280
275
  def w3c_scroll_to_start_or_end(type)
@@ -312,7 +312,7 @@ module ::TestaAppiumDriver
312
312
  def ios?
313
313
  device == :ios
314
314
  end
315
-
315
+
316
316
  private
317
317
  def extend_for(device, automation_name)
318
318
  case device
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ #noinspection RubyResolve
4
+ require "testa_appium_driver"
5
+
6
+ RSpec.configure do |config|
7
+ # Enable flags like --only-failures and --next-failure
8
+ config.example_status_persistence_file_path = ".rspec_status"
9
+
10
+ # Disable RSpec exposing methods globally on `Module` and `main`
11
+ config.disable_monkey_patching!
12
+
13
+ config.expect_with :rspec do |c|
14
+ c.syntax = :expect
15
+ end
16
+ end
@@ -0,0 +1,119 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe TestaAppiumDriver do
4
+ it "Android Test" do
5
+
6
+
7
+ @options = {
8
+ caps: {
9
+ :platformName => "Android",
10
+ :adbPort => 5037,
11
+ :remoteAdbHost => 'localhost',
12
+ :newCommandTimeout => 0, # no timeout when zero
13
+ :adbExecTimeout => 600000,
14
+ :appPackage => "ro.superbet.sport.stage",
15
+ :androidInstallTimeout => 600000,
16
+ :uiautomator2ServerLaunchTimeout => 600000,
17
+ :uiautomator2ServerInstallTimeout => 600000,
18
+ #waitForSelectorTimeout: 26,
19
+ :waitForIdleTimeout => 1,
20
+ :appWaitPackage => "ro.superbet.sport.stage",
21
+ :deviceName => "Phone",
22
+ :app => "/testa/hard_storage/project_files/2/apks/bc72173fd9b03e80c58161f2a881c1e679ce368ba9ca79855501597ce2e312ad.apk",
23
+ :noSign => true,
24
+ :udid => "228b371032057ece",
25
+ :automationName => "uiautomator2",
26
+ :systemPort => rand(7000..32000),
27
+ :noReset => true,
28
+ :fullReset => false,
29
+ # :noReset => false,
30
+ # :fullReset => true,
31
+ skipServerInstallation: true,
32
+ :enableMultiWindows => true, # enables appium to see some otherwise "hidden" elements
33
+ #:disableWindowAnimation => true,
34
+ autoGrantPermissions: true,
35
+ },
36
+ appium_lib: {
37
+ #:server_url => "http://localhost:4723/wd/hub/"
38
+ :server_url => "http://10.150.0.56:4723/wd/hub/"
39
+ },
40
+ testa_appium_driver: {
41
+ #default_find_strategy: "xpath",
42
+ #default_scroll_strategy: "w3c",
43
+ scroll_to_find: false
44
+ }
45
+ }
46
+
47
+
48
+ d = TestaAppiumDriver::Driver.new(@options)
49
+
50
+ # d.element(id: "analyticsPositiveView").click
51
+ # d.element(id: "startPlayingLogInView").click
52
+ #
53
+ # d.edit_texts[0].send_keys "testdevice1"
54
+ #
55
+ # d.edit_texts[1].send_keys "superbet1x2"
56
+ #
57
+ # puts "Buttons #{d.buttons(id: "buttonView").count}"
58
+ # d.button(id: "buttonView").click
59
+
60
+
61
+ puts "aaa"
62
+
63
+ drag_handle = d.frame_layout(id: "defaultBetSlipView").linear_layout.view
64
+ puts drag_handle.bounds
65
+ drag_handle.wait_until_exists.drag_up_by(1000)
66
+ sleep 1
67
+
68
+ scrollable = d.element(id: "betSlipFragmentHolder").recycler_view(id:"recyclerView")
69
+ scrollable.elements(id: "match_holder").parent.each_down do |m|
70
+ puts "1"
71
+ name1 = m.element(id: "match_team1Name").text
72
+ name2 = m.element(id: "match_team2Name").text
73
+ market = m.element(id: "betOfferName").text
74
+ puts "name: #{name1} - #{name2}, market_name: #{market}"
75
+ end
76
+
77
+
78
+
79
+
80
+ d.element(id: "buttonView").click
81
+
82
+ d.text_view(text: "Județ").scroll_to.click
83
+
84
+ puts d.text_view(text: "Bihor").exists?
85
+ d.recycler_view.wait_until_exists
86
+ puts d.element(id: "viewPager").execute.text_view(text: "#soccer").text
87
+ d.text_view(text: "#soccer").preceding_siblings[2]
88
+ d.text_view(text: "#soccer").preceding_siblings.each_with_index do |e, i|
89
+ puts e.class_name
90
+ end
91
+ puts "--------"
92
+ puts d.text_view(text: "#soccer").preceding_sibling.class_name
93
+
94
+ puts "=============="
95
+ puts d.text_view(text: "#soccer").following_sibling.className
96
+
97
+
98
+ d.text_view(text: "Super Extra").scroll_to
99
+ d.text_view(text: "Super Extra").siblings
100
+
101
+ puts d.element(id: "viewPager").parent.text_view.text
102
+ d.scrollable.scroll_left_to
103
+
104
+
105
+ puts d.element(id: "viewPager").list_view.element(id: "nameView").scroll_up_to.text
106
+
107
+
108
+ puts d.text_view(text: "#soccer").bounds
109
+
110
+ d.element(id: "viewPager").elements(id: "nameView").each do |e|
111
+ puts e.text
112
+ end
113
+
114
+
115
+ expect(TestaAppiumDriver::VERSION).not_to be nil
116
+ end
117
+
118
+
119
+ end
@@ -0,0 +1,121 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe TestaAppiumDriver do
4
+ it "iOS Test" do
5
+ require 'em/pure_ruby'
6
+ require 'appium_lib_core'
7
+ require 'net/http'
8
+
9
+ udid = "d4b893ee622bf59795eeaa7d2c36bcca05fcccb1"
10
+
11
+ #testa sends ingredients for remote quamotion to get app
12
+ path = "project_files/2/apks/5df912ca31070c6d70104b997a611c58274f92a0af0f2436944fea3db1c10822.ipa"
13
+ ipa_url = "https://supertesta.com/ipas/#{path}"
14
+ ipa_name = File.basename(path)
15
+
16
+ #quamotion endpoint that can receive ipa url, and download it
17
+ url = "http://10.150.0.56:9494/receive_ipa?udid=#{udid}&ipa_url=#{ipa_url}&ipa_name=#{ipa_name}"
18
+ uri = URI.parse(url)
19
+ http = Net::HTTP.new(uri.host, uri.port)
20
+ request = Net::HTTP::Post.new(uri.request_uri)
21
+ res = http.request(request)
22
+ raise "copy opa res code not 200 : #{res.code}" unless res.code == "200"
23
+ ipa_remote_path = res.body
24
+
25
+
26
+ start_vnc_url = "http://10.150.0.56:9494/start_vnc_server?udid=#{udid}"
27
+ uri = URI("#{start_vnc_url}")
28
+ res = Net::HTTP.start(uri.host, uri.port, read_timeout: 129) do |http|
29
+ http.max_retries = 0 # Fix http retries
30
+ http.request(Net::HTTP::Post.new(uri))
31
+ end
32
+ urls = JSON.parse(res.body)
33
+ wda_url = URI("#{urls['wda_url']}")
34
+ wda_port = wda_url.port
35
+
36
+
37
+ @options = {
38
+ caps: {
39
+ :platformName => "iOS",
40
+ :newCommandTimeout => 0, # no timeout when zero
41
+ :platformVersion => "14.4",
42
+ :bundleId => "ro.superbet.sport.stage",
43
+ :waitForIdleTimeout => 3000,
44
+ :deviceName => 'iphone',
45
+ :app => ipa_remote_path,
46
+ :webDriverAgentUrl => "http://127.0.0.1:#{wda_port}",
47
+ :automationName => "XCUITest",
48
+ :noSign => true,
49
+ :udid => udid, # iPhone 7 black
50
+
51
+
52
+ :systemPort => rand(7000..32000),
53
+ :noReset => true,
54
+ :fullReset => false,
55
+ :enableMultiWindows => true, # enables appium to see some otherwise "hidden" elements
56
+ #:disableWindowAnimation => true,
57
+ autoGrantPermissions: true,
58
+ },
59
+ appium_lib: {
60
+ #:server_url => "http://localhost:4723/wd/hub/"
61
+ :server_url => "http://10.150.0.56:4725/wd/hub/"
62
+ },
63
+ testa_appium_driver: {
64
+ #default_find_strategy: "xpath",
65
+ #default_scroll_strategy: "w3c",
66
+ scroll_to_find: false
67
+ }
68
+ }
69
+
70
+
71
+ d = TestaAppiumDriver::Driver.new(@options)
72
+
73
+ # d.element(id: "analyticsPositiveView").click
74
+ # d.element(id: "startPlayingLogInView").click
75
+ #
76
+ # d.edit_texts[0].send_keys "testdevice1"
77
+ #
78
+ # d.edit_texts[1].send_keys "superbet1x2"
79
+ #
80
+ # puts "Buttons #{d.buttons(id: "buttonView").count}"
81
+ # d.button(id: "buttonView").click
82
+ #
83
+ # sleep 10
84
+
85
+
86
+ puts d.static_text(text: "#soccer").wait_until_exists.text
87
+ d.element(text: "Super Extra").scroll_to
88
+ puts d.static_text(text: "#soccer").class_name
89
+ puts d.static_text(text: "#soccer").parent.class_name
90
+
91
+ d.text_view(text: "#soccer").preceding_siblings.each_with_index do |e, i|
92
+ puts d.text_view(text: "#soccer").preceding_siblings[i].className
93
+ puts e.className
94
+ end
95
+ puts "--------"
96
+ puts d.text_view(text: "#soccer").preceding_sibling.className
97
+
98
+ puts "=============="
99
+ puts d.text_view(text: "#soccer").following_sibling.className
100
+
101
+
102
+ d.text_view(text: "Super Extra").siblings
103
+
104
+ puts d.element(id: "viewPager").parent.text_view.text
105
+ d.scrollable.scroll_left_to
106
+
107
+
108
+ puts d.element(id: "viewPager").list_view.element(id: "nameView").scroll_up_to.text
109
+
110
+
111
+ puts d.text_view(text: "#soccer").bounds
112
+
113
+ d.element(id: "viewPager").elements(id: "nameView").each do |e|
114
+ puts e.text
115
+ end
116
+
117
+
118
+ expect(TestaAppiumDriver::VERSION).not_to be nil
119
+ end
120
+
121
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testa_appium_driver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.27
4
+ version: 0.1.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - karlo.razumovic
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-05 00:00:00.000000000 Z
11
+ date: 2024-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: appium_lib_core
@@ -38,34 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.3'
41
- - !ruby/object:Gem::Dependency
42
- name: rubocop
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '='
46
- - !ruby/object:Gem::Version
47
- version: 1.19.0
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '='
53
- - !ruby/object:Gem::Version
54
- version: 1.19.0
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '13.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '13.0'
69
41
  description: Testa appium driver is a wrapper around ruby_lib_core. It leverages all
70
42
  driver features and makes them simple and easy to use, significantly reduces the
71
43
  amount of code needed and enables you to define locators that can be reused
@@ -75,47 +47,45 @@ executables: []
75
47
  extensions: []
76
48
  extra_rdoc_files: []
77
49
  files:
78
- - ".gitattributes"
79
- - ".gitignore"
80
- - ".rspec"
81
- - ".rubocop.yml"
82
- - CHANGELOG.md
83
- - CODE_OF_CONDUCT.md
84
- - Gemfile
85
- - Gemfile.lock
86
- - LICENSE.txt
87
- - README.md
88
- - Rakefile
89
- - bin/console
90
- - bin/setup
91
- - lib/testa_appium_driver.rb
92
- - lib/testa_appium_driver/android/class_selectors.rb
93
- - lib/testa_appium_driver/android/driver.rb
94
- - lib/testa_appium_driver/android/locator.rb
95
- - lib/testa_appium_driver/android/locator/attributes.rb
96
- - lib/testa_appium_driver/android/scroll_actions/uiautomator_scroll_actions.rb
97
- - lib/testa_appium_driver/android/selenium_element.rb
98
- - lib/testa_appium_driver/common/bounds.rb
99
- - lib/testa_appium_driver/common/constants.rb
100
- - lib/testa_appium_driver/common/exceptions/strategy_mix_exception.rb
101
- - lib/testa_appium_driver/common/helpers.rb
102
- - lib/testa_appium_driver/common/locator.rb
103
- - lib/testa_appium_driver/common/locator/scroll_actions.rb
104
- - lib/testa_appium_driver/common/scroll_actions.rb
105
- - lib/testa_appium_driver/common/scroll_actions/json_wire_scroll_actions.rb
106
- - lib/testa_appium_driver/common/scroll_actions/w3c_scroll_actions.rb
107
- - lib/testa_appium_driver/common/selenium_element.rb
108
- - lib/testa_appium_driver/driver.rb
109
- - lib/testa_appium_driver/ios/driver.rb
110
- - lib/testa_appium_driver/ios/locator.rb
111
- - lib/testa_appium_driver/ios/locator/attributes.rb
112
- - lib/testa_appium_driver/ios/selenium_element.rb
113
- - lib/testa_appium_driver/ios/type_selectors.rb
114
- - testa_appium_driver.gemspec
50
+ - "./CHANGELOG.md"
51
+ - "./CODE_OF_CONDUCT.md"
52
+ - "./Gemfile"
53
+ - "./LICENSE.txt"
54
+ - "./README.md"
55
+ - "./Rakefile"
56
+ - "./bin/console"
57
+ - "./bin/setup"
58
+ - "./lib/testa_appium_driver.rb"
59
+ - "./lib/testa_appium_driver/android/class_selectors.rb"
60
+ - "./lib/testa_appium_driver/android/driver.rb"
61
+ - "./lib/testa_appium_driver/android/locator.rb"
62
+ - "./lib/testa_appium_driver/android/locator/attributes.rb"
63
+ - "./lib/testa_appium_driver/android/scroll_actions/uiautomator_scroll_actions.rb"
64
+ - "./lib/testa_appium_driver/android/selenium_element.rb"
65
+ - "./lib/testa_appium_driver/common/bounds.rb"
66
+ - "./lib/testa_appium_driver/common/constants.rb"
67
+ - "./lib/testa_appium_driver/common/exceptions/strategy_mix_exception.rb"
68
+ - "./lib/testa_appium_driver/common/helpers.rb"
69
+ - "./lib/testa_appium_driver/common/locator.rb"
70
+ - "./lib/testa_appium_driver/common/locator/scroll_actions.rb"
71
+ - "./lib/testa_appium_driver/common/scroll_actions.rb"
72
+ - "./lib/testa_appium_driver/common/scroll_actions/json_wire_scroll_actions.rb"
73
+ - "./lib/testa_appium_driver/common/scroll_actions/w3c_scroll_actions.rb"
74
+ - "./lib/testa_appium_driver/common/selenium_element.rb"
75
+ - "./lib/testa_appium_driver/driver.rb"
76
+ - "./lib/testa_appium_driver/ios/driver.rb"
77
+ - "./lib/testa_appium_driver/ios/locator.rb"
78
+ - "./lib/testa_appium_driver/ios/locator/attributes.rb"
79
+ - "./lib/testa_appium_driver/ios/selenium_element.rb"
80
+ - "./lib/testa_appium_driver/ios/type_selectors.rb"
81
+ - "./spec/spec_helper.rb"
82
+ - "./spec/testa_appium_driver_android_spec.rb"
83
+ - "./spec/testa_appium_driver_ios_spec.rb"
115
84
  homepage: https://github.com/Karazum/testa_appium_driver
116
85
  licenses:
117
86
  - MIT
118
87
  metadata:
88
+ rubygems_mfa_required: 'true'
119
89
  documentation_uri: https://www.rubydoc.info/gems/testa_appium_driver
120
90
  homepage_uri: https://github.com/Karazum/testa_appium_driver
121
91
  source_code_uri: https://github.com/Karazum/testa_appium_driver
data/.gitattributes DELETED
@@ -1,23 +0,0 @@
1
- # Set the default behavior, in case people don't have core.autocrlf set.
2
- * text=auto
3
-
4
- # Declare files that will always have LF line endings on checkout.
5
- *.rb text eol=lf
6
- *.yml text eol=lf
7
- *.sh text eol=lf
8
- *.Dockerfile eol=lf
9
- *.dockerfile eol=lf
10
- *.conf eol=lf
11
- *.ru eol=lf
12
- *.json eol=lf
13
- *.js eol=lf
14
- *.css eol=lf
15
- *.erb eol=lf
16
- *.html eol=lf
17
- *.map eol=lf
18
-
19
- # Denote all files that are truly binary and should not be modified.
20
- *.png binary
21
- *.jpg binary
22
- *.bin binary
23
- *.zip binary
data/.gitignore DELETED
@@ -1,17 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
-
10
- # rspec failure tracking
11
- .rspec_status
12
-
13
- /.idea/deployment.xml
14
- /.idea/workspace.xml
15
- /.idea/misc.xml
16
- testa_appium_driver-*.gem
17
- /appium-driver.iml
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/.rubocop.yml DELETED
@@ -1,6 +0,0 @@
1
- # we have to have per project rubcop files (IDE limitation),
2
- # but we want only one config across all projects
3
- # you can override any global cops here, in this file
4
- inherit_from:
5
- - ../../.rubocop.yml
6
- - ../../.rubocop-performance.yml
data/Gemfile.lock DELETED
@@ -1,80 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- testa_appium_driver (0.1.27)
5
- appium_lib_core
6
- json (~> 2.3)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- appium_lib_core (5.2.2)
12
- faye-websocket (~> 0.11.0)
13
- selenium-webdriver (~> 4.2, < 4.4)
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
- json (2.6.2)
22
- parallel (1.22.1)
23
- parser (3.1.2.0)
24
- ast (~> 2.4.1)
25
- rainbow (3.1.1)
26
- rake (13.0.6)
27
- regexp_parser (2.4.0)
28
- rexml (3.2.5)
29
- rspec (3.11.0)
30
- rspec-core (~> 3.11.0)
31
- rspec-expectations (~> 3.11.0)
32
- rspec-mocks (~> 3.11.0)
33
- rspec-core (3.11.0)
34
- rspec-support (~> 3.11.0)
35
- rspec-expectations (3.11.0)
36
- diff-lcs (>= 1.2.0, < 2.0)
37
- rspec-support (~> 3.11.0)
38
- rspec-mocks (3.11.1)
39
- diff-lcs (>= 1.2.0, < 2.0)
40
- rspec-support (~> 3.11.0)
41
- rspec-support (3.11.0)
42
- rubocop (1.26.0)
43
- parallel (~> 1.10)
44
- parser (>= 3.1.0.0)
45
- rainbow (>= 2.2.2, < 4.0)
46
- regexp_parser (>= 1.8, < 3.0)
47
- rexml
48
- rubocop-ast (>= 1.16.0, < 2.0)
49
- ruby-progressbar (~> 1.7)
50
- unicode-display_width (>= 1.4.0, < 3.0)
51
- rubocop-ast (1.18.0)
52
- parser (>= 3.1.1.0)
53
- rubocop-performance (1.15.0)
54
- rubocop (>= 1.7.0, < 2.0)
55
- rubocop-ast (>= 0.4.0)
56
- ruby-progressbar (1.11.0)
57
- rubyzip (2.3.2)
58
- selenium-webdriver (4.3.0)
59
- childprocess (>= 0.5, < 5.0)
60
- rexml (~> 3.2, >= 3.2.5)
61
- rubyzip (>= 1.2.2, < 3.0)
62
- websocket (~> 1.0)
63
- unicode-display_width (2.1.0)
64
- websocket (1.2.9)
65
- websocket-driver (0.7.5)
66
- websocket-extensions (>= 0.1.0)
67
- websocket-extensions (0.1.5)
68
-
69
- PLATFORMS
70
- ruby
71
-
72
- DEPENDENCIES
73
- rake (~> 13.0)
74
- rspec (~> 3.0)
75
- rubocop (~> 1.26.0)
76
- rubocop-performance
77
- testa_appium_driver!
78
-
79
- BUNDLED WITH
80
- 2.3.14
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Gem::Specification.new do |spec|
4
- spec.name = "testa_appium_driver"
5
- spec.version = "0.1.27"
6
- spec.authors = ["karlo.razumovic"]
7
- spec.email = ["karlo.razumovic@gmail.com"]
8
-
9
- spec.summary = "Appium made easy"
10
- spec.description = "Testa appium driver is a wrapper around ruby_lib_core. It leverages all driver features and makes them simple and easy to use, significantly reduces the amount of code needed and enables you to define locators that can be reused"
11
- spec.homepage = "https://github.com/Karazum/testa_appium_driver"
12
- spec.license = "MIT"
13
- spec.required_ruby_version = ">= 2.7.6"
14
-
15
- #spec.metadata["allowed_push_host"] = "Set to 'https://mygemserver.com'"
16
-
17
- spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/testa_appium_driver"
18
- spec.metadata["homepage_uri"] = spec.homepage
19
- spec.metadata["source_code_uri"] = "https://github.com/Karazum/testa_appium_driver"
20
- spec.metadata["changelog_uri"] = "https://github.com/Karazum/testa_appium_driver"
21
-
22
- # this can be optimized
23
- # spec.files = Dir["#{File.dirname(__FILE__)}/*"]
24
-
25
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
27
- end
28
-
29
- spec.bindir = "exe"
30
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
- spec.require_paths = ["lib"]
32
-
33
- spec.add_runtime_dependency "appium_lib_core"
34
- spec.add_runtime_dependency "json", ["~> 2.3"]
35
-
36
- spec.add_development_dependency "rubocop", ["= 1.19.0"]
37
- spec.add_development_dependency "rake", ["~> 13.0"]
38
-
39
- # For more information and examples about making a new gem, checkout our
40
- # guide at: https://bundler.io/guides/creating_gem.html
41
- end