appium_lib_core 6.4.0 → 6.4.2

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
  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.