appium_lib_core 6.4.0 → 6.4.2

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: 3047299ce31d2eac69a3d62e52e2fa73ca02710e0f7c7d5d039e06e838822386
4
- data.tar.gz: 2776a7ddebb3cc71a0334559c663b351c1f5f4dde223b313d3b581b91b83b402
3
+ metadata.gz: 1753dcab9078704c59e4b7a4201f99adbc578945a499c76e033a9c2f2bbc2393
4
+ data.tar.gz: 73571aa53628ebd31d7e784fa970c458a5935e1a137fe5861e0988ebb1838f58
5
5
  SHA512:
6
- metadata.gz: cfd4ad06897b4402556701ff40bb3722f4c5b8dd3b4704577ba7790c28f6e329d5aab83abbdea906c309897b9c95f87d61f6845e7eb8ef4f569105a82d816164
7
- data.tar.gz: 6076c5d10ee6010eea91a78ff98aaa18187ef6c7c1519e024bba8b7207f4892311cea7ffcac0b081a5ebb39945d42eae46d1ca463fa581f6450d3e6b53f29731
6
+ metadata.gz: 2e8f12a34ec0eb4d0db97ee01a4e4f49b64d4599733b7d9907c6f1edc63d2e4daadfea0e763d9e430c712a31f7f6aea438ca4a2fa4f40f55167380c7fc747f12
7
+ data.tar.gz: 87517cf452bfcc9a87d244eed4278ad3fb157991bdada3517e21695710c059126603f520231d700b9cc22e58198ab085220866803d132985302835aecef15b23
data/CHANGELOG.md CHANGED
@@ -10,6 +10,16 @@ Read `release_notes.md` for commit level details.
10
10
 
11
11
  ### Deprecations
12
12
 
13
+ ## [6.4.2] - 2023-06-07
14
+
15
+ ### Enhancements
16
+ - Simplify internal http client implementation a bit
17
+
18
+ ## [6.4.1] - 2023-05-13
19
+
20
+ ### Bug fixes
21
+ - Fixed `driver.execute_cdp` command error in a chrome session
22
+
13
23
  ## [6.4.0] - 2023-04-30
14
24
 
15
25
  ### Enhancements
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'minitest', '~> 5.0'
31
31
  spec.add_development_dependency 'minitest-reporters', '~> 1.1'
32
32
  spec.add_development_dependency 'webmock', '~> 3.18.1'
33
- spec.add_development_dependency 'rubocop', '1.50.2'
33
+ spec.add_development_dependency 'rubocop', '1.52.0'
34
34
  spec.add_development_dependency 'appium_thor', '~> 1.0'
35
35
  spec.add_development_dependency 'parallel_tests'
36
36
  spec.add_development_dependency 'simplecov'
@@ -106,6 +106,43 @@ module Appium
106
106
  # @driver.toggle_data
107
107
  #
108
108
 
109
+ # @!method location
110
+ # Get the location of the device.
111
+ #
112
+ # @return [::Appium::Location]
113
+ #
114
+ # @example
115
+ #
116
+ # driver.location #=> ::Appium::Location.new(10, 10, 10)
117
+ #
118
+
119
+ # @!method location=
120
+ # Set the location of the device.
121
+ #
122
+ # @param [::Appium::Location] location Set the location.
123
+ #
124
+ # @example
125
+ #
126
+ # driver.location = ::Appium::Location.new(10, 10, 10)
127
+ #
128
+
129
+ # @!method set_location
130
+ # Set the location of the device.
131
+ #
132
+ # @param [String, Number] latitude Set the latitude.
133
+ # @param [String, Number] longitude Set the longitude.
134
+ # @param [String, Number] altitude Set the altitude.
135
+ # @param [String, Number] speed Set the speed to apply the location on Android real devices
136
+ # in meters/second @since Appium 1.21.0 and in knots for emulators @since Appium 1.22.0.
137
+ # @param [String, Number] satellites Sets the count of geo satellites being tracked in range 1..12 @since Appium 1.22.0.
138
+ # This number is respected on Emulators.
139
+ # @param [::Appium::Location]
140
+ #
141
+ # @example
142
+ #
143
+ # driver.set_location 10, 10, 0
144
+ #
145
+
109
146
  # @!method toggle_location_services
110
147
  # Switch the state of the location service
111
148
  #
@@ -302,6 +339,10 @@ module Appium
302
339
  # @driver.execute_cdp 'Page.captureScreenshot', quality: 50, format: 'jpeg'
303
340
  # @driver.execute_cdp 'Page.getResourceTree'
304
341
  #
342
+ # # for Ruby 2,7 and 3+ compatibility
343
+ # params = {'timezoneId': 'Asia/Tokyo'}
344
+ # driver.execute_cdp 'Emulation.setTimezoneOverride', **params
345
+ #
305
346
 
306
347
  ####
307
348
  ## class << self
@@ -357,6 +357,15 @@ module Appium
357
357
  execute :take_element_screenshot, id: element_id
358
358
  end
359
359
 
360
+ # for selenium-webdriver compatibility in chrome browser session.
361
+ # This may be needed in selenium-webdriver 4.8 or over? (around the version)
362
+ # when a session starts browserName: 'chrome' for bridge.
363
+ # This method is not only for Android, but also chrome desktop browser as well.
364
+ # So this bridge itself does not restrict the target module.
365
+ def send_command(command_params)
366
+ execute :chrome_send_command, {}, command_params
367
+ end
368
+
360
369
  private
361
370
 
362
371
  def unwrap_script_result(arg)
@@ -27,13 +27,6 @@ module Appium
27
27
  end
28
28
 
29
29
  class Default < Selenium::WebDriver::Remote::Http::Default
30
- DEFAULT_HEADERS = {
31
- 'Accept' => CONTENT_TYPE,
32
- 'Content-Type' => "#{CONTENT_TYPE}; charset=UTF-8",
33
- 'User-Agent' =>
34
- "appium/ruby_lib_core/#{VERSION} (#{::Selenium::WebDriver::Remote::Http::Common::DEFAULT_HEADERS['User-Agent']})"
35
- }.freeze
36
-
37
30
  attr_reader :additional_headers
38
31
 
39
32
  # override
@@ -64,6 +57,13 @@ module Appium
64
57
  @server_url = URI.parse "#{scheme}://#{host}:#{port}#{path}"
65
58
  end
66
59
 
60
+ def request(verb, url, headers, payload, redirects = 0)
61
+ headers['User-Agent'] = "appium/ruby_lib_core/#{VERSION} (#{headers['User-Agent']})"
62
+ headers = headers.merge @additional_headers unless @additional_headers.empty?
63
+
64
+ super(verb, url, headers, payload, redirects)
65
+ end
66
+
67
67
  private
68
68
 
69
69
  def validate_url_param(scheme, host, port, path)
@@ -73,30 +73,6 @@ module Appium
73
73
  ::Appium::Logger.debug(message)
74
74
  false
75
75
  end
76
-
77
- public
78
-
79
- # override to use default header
80
- # https://github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/remote/http/common.rb#L46
81
- def call(verb, url, command_hash)
82
- url = server_url.merge(url) unless url.is_a?(URI)
83
- headers = DEFAULT_HEADERS.dup
84
- headers = headers.merge @additional_headers unless @additional_headers.empty?
85
- headers['Cache-Control'] = 'no-cache' if verb == :get
86
-
87
- if command_hash
88
- payload = JSON.generate(command_hash)
89
- headers['Content-Length'] = payload.bytesize.to_s if [:post, :put].include?(verb)
90
- elsif verb == :post
91
- payload = '{}'
92
- headers['Content-Length'] = '2'
93
- end
94
-
95
- ::Appium::Logger.info(" >>> #{url} | #{payload}")
96
- ::Appium::Logger.info(" > #{headers.inspect}")
97
-
98
- request verb, url, headers, payload
99
- end
100
76
  end
101
77
  end
102
78
  end
@@ -14,7 +14,7 @@
14
14
 
15
15
  module Appium
16
16
  module Core
17
- VERSION = '6.4.0' unless defined? ::Appium::Core::VERSION
18
- DATE = '2023-04-30' unless defined? ::Appium::Core::DATE
17
+ VERSION = '6.4.2' unless defined? ::Appium::Core::VERSION
18
+ DATE = '2023-06-07' unless defined? ::Appium::Core::DATE
19
19
  end
20
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_lib_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.4.0
4
+ version: 6.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuaki MATSUO
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-30 00:00:00.000000000 Z
11
+ date: 2023-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -120,14 +120,14 @@ dependencies:
120
120
  requirements:
121
121
  - - '='
122
122
  - !ruby/object:Gem::Version
123
- version: 1.50.2
123
+ version: 1.52.0
124
124
  type: :development
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - '='
129
129
  - !ruby/object:Gem::Version
130
- version: 1.50.2
130
+ version: 1.52.0
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: appium_thor
133
133
  requirement: !ruby/object:Gem::Requirement
@@ -285,7 +285,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
285
285
  - !ruby/object:Gem::Version
286
286
  version: '0'
287
287
  requirements: []
288
- rubygems_version: 3.3.3
288
+ rubygems_version: 3.4.10
289
289
  signing_key:
290
290
  specification_version: 4
291
291
  summary: Minimal Ruby library for Appium.