testcentricity_web 4.7.4 → 4.7.5

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: 42a2ba675c9414a8c2ee7fdb23ddc05ae4d9c2dcb49fc4cb2012cf3069c9fe62
4
- data.tar.gz: e116c969fbf5f3f3f27740455dbdfb4f4d061714424447dc68cffd5d5ce69ddb
3
+ metadata.gz: 358ac2e590a809b747d4c7d52e4444992dbda769d1e4f6e8db889b906b4eb4b9
4
+ data.tar.gz: 34693a0b11d1529ed050dcc8462704420906c4c2014e38ca4fde2f9639655a9b
5
5
  SHA512:
6
- metadata.gz: a6f70a6c2fc9e042acb99b584c2421852e7802348e65c2d252cb29cc92959fd4cf6430f522768e1b3fe332304009afd09b66e9df6fbb4dcf2bccca9e3716a3a4
7
- data.tar.gz: a10fb3ea70e3a2228843a93014c97c2e396fd44f5f3274baef5a027aa6df5ccd77a113b694f440f78da3700444961cfc8e3f1b53b4bfea778e9ce6f97186c238
6
+ metadata.gz: 65297664d6fa051e3fd70416b0c79530ea06fb5be9b9efd29a7fc9ea33d1cdfb73bcd020c0944b96d40839820c33f04b3fe895de47f193d46952ab9c659493d4
7
+ data.tar.gz: 98d78ed5d0f3743be46cd388deec693465f579f569975ded8fdb0cbc507d2909b9b800faef9a25ca874d708bcf278853343182694692bdb85f7662cf724ab869
data/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
4
 
5
+ ## [4.7.5] - 30-OCT-2026
6
+
7
+ ### Changed
8
+
9
+ * Updated `appium_lib` gem to version 16.4.1.
10
+ * Updated `appium_lib_core` gem to version 13.2.1.
11
+ * Update gem dependencies to address CVE-2026-85396.
12
+
13
+
5
14
  ## [4.7.4] - 01-MAY-2026
6
15
 
7
16
  ### Changed
data/README.md CHANGED
@@ -7,6 +7,18 @@
7
7
  [![Docs](https://img.shields.io/badge/docs-rubydoc-blue.svg)](http://www.rubydoc.info/gems/testcentricity_web)
8
8
 
9
9
 
10
+ The **TestCentricity**™ suite of Ruby gems is an open-source test automation framework family designed to support automated
11
+ testing implementations using a Behavior-Driven Development (BDD) model. It provides a comprehensive Domain-Specific Language
12
+ (DSL) that implements the **Page Object Model (POM)** and Data Object Model patterns. This simplifies and streamlines the process
13
+ of writing automated tests for desktop and mobile web, native mobile applications, and MacOS desktop applications.
14
+
15
+ Core features include:
16
+ * **Encapsulation:** Defines page classes, page sections, and data objects to completely separate test scripts from underlying UI element locators and test data assets.
17
+ * **Built-in Verification:** Includes integrated element validation and asynchronous wait mechanisms to handle dynamic UI content and asynchronous loading effortlessly.
18
+ * **BDD Compatibility:** Perfectly pairs with testing frameworks like Cucumber and RSpec to create highly readable, business-driven feature files.
19
+
20
+ ---
21
+
10
22
  The TestCentricity™ For Web core framework for desktop and mobile web browser-based app testing implements a Page Object Model
11
23
  DSL for use with Cucumber (version 7.x or greater) or RSpec, and Selenium-Webdriver. It also facilitates the configuration
12
24
  of the appropriate Selenium-Webdriver capabilities required to establish connections with one or more local or cloud hosted
@@ -45,6 +45,8 @@ module TestCentricity
45
45
  if state.is_a?(Hash) && state.length == 1
46
46
  state.each do |key, value|
47
47
  case key
48
+ when :integer
49
+ enqueue_assert_equal(value, actual.to_int, error_msg)
48
50
  when :lt, :less_than
49
51
  enqueue_exception("#{error_msg} be less than #{value} but found '#{actual}'") unless actual < value
50
52
  when :lt_eq, :less_than_or_equal
@@ -10,6 +10,17 @@ class Object
10
10
  def boolean?
11
11
  [true, false].include? self
12
12
  end
13
+
14
+ def deep_symbolize(obj)
15
+ case obj
16
+ when Hash
17
+ obj.each_with_object({}) { |(k, v), h| h[k.to_sym] = deep_symbolize(v) }
18
+ when Array
19
+ obj.map { |elem| deep_symbolize(elem) }
20
+ else
21
+ obj
22
+ end
23
+ end
13
24
  end
14
25
 
15
26
 
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '4.7.4'
2
+ VERSION = '4.7.5'
3
3
  end
@@ -2,6 +2,7 @@ require 'selenium-webdriver'
2
2
  require 'os'
3
3
  require 'browserstack/local'
4
4
  require 'fileutils'
5
+ require 'json'
5
6
 
6
7
 
7
8
  module TestCentricity
@@ -425,17 +426,8 @@ module TestCentricity
425
426
  end
426
427
  # specify endpoint url
427
428
  @endpoint = "https://#{ENV['BS_USERNAME']}:#{ENV['BS_AUTHKEY']}@hub-cloud.browserstack.com/wd/hub" if @endpoint.nil?
428
- # enable tunneling if specified
429
- if ENV['TUNNELING']
430
- @bs_local = BrowserStack::Local.new
431
- bs_local_args = {'key' => "#{ENV['BS_AUTHKEY']}"}
432
- @bs_local.start(bs_local_args)
433
- if @bs_local.isRunning
434
- puts 'BrowserStack Local instance has been started'
435
- else
436
- puts 'BrowserStack Local instance failed to start'
437
- end
438
- end
429
+ # determine if tunneling is specified
430
+ Environ.tunneling = ENV['TUNNELING'] if ENV['TUNNELING']
439
431
  # define BrowserStack options
440
432
  options = if @capabilities.nil?
441
433
  Environ.os = "#{ENV['BS_OS']} #{ENV['BS_OS_VERSION']}"
@@ -494,7 +486,9 @@ module TestCentricity
494
486
  end
495
487
  else
496
488
  bs_options = @capabilities[:'bstack:options']
489
+ bs_options = JSON.parse(bs_options.to_json, symbolize_names: true)
497
490
  Environ.os = "#{bs_options[:os]} #{bs_options[:osVersion]}"
491
+ Environ.tunneling = bs_options[:local]
498
492
  if bs_options.key?(:deviceName)
499
493
  Environ.platform = :mobile
500
494
  Environ.device_name = bs_options[:deviceName]
@@ -508,10 +502,21 @@ module TestCentricity
508
502
  end
509
503
  @capabilities
510
504
  end
505
+ # enable tunneling if specified
506
+ if Environ.tunneling
507
+ @bs_local = BrowserStack::Local.new
508
+ bs_local_args = { 'key' => "#{ENV['BS_AUTHKEY']}" }
509
+ @bs_local.start(bs_local_args)
510
+ if @bs_local.isRunning
511
+ puts 'BrowserStack Local instance has been started'
512
+ else
513
+ puts 'BrowserStack Local instance failed to start'
514
+ end
515
+ end
516
+
511
517
  register_remote_driver(browser, options)
512
518
  # configure file_detector for remote uploads if target is desktop web browser
513
519
  config_file_uploads if Environ.platform == :desktop
514
- Environ.tunneling = ENV['TUNNELING'] if ENV['TUNNELING']
515
520
  end
516
521
 
517
522
  def self.initialize_testingbot
@@ -565,6 +570,7 @@ module TestCentricity
565
570
  }
566
571
  else
567
572
  tb_options = @capabilities[:'tb:options']
573
+ tb_options = JSON.parse(tb_options.to_json, symbolize_names: true)
568
574
  Environ.os = @capabilities[:platformName]
569
575
  if tb_options.key?(:deviceName)
570
576
  Environ.platform = :mobile
@@ -639,6 +645,7 @@ module TestCentricity
639
645
  end
640
646
  else
641
647
  sl_options = @capabilities[:'sauce:options']
648
+ sl_options = JSON.parse(sl_options.to_json, symbolize_names: true)
642
649
  Environ.os = @capabilities[:platform_name]
643
650
  if @capabilities.key?(:'appium:deviceName')
644
651
  Environ.platform = :mobile
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testcentricity_web
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.4
4
+ version: 4.7.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - A.J. Mrozinski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-01 00:00:00.000000000 Z
11
+ date: 2026-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: axe-core-cucumber
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 4.43.0
159
+ version: 4.44.0
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 4.43.0
166
+ version: 4.44.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: simplecov
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -212,14 +212,14 @@ dependencies:
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: 16.2.0
215
+ version: 16.4.1
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: 16.2.0
222
+ version: 16.4.1
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: browserstack-local
225
225
  requirement: !ruby/object:Gem::Requirement