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 +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +12 -0
- data/lib/testcentricity_web/exception_queue_helper.rb +2 -0
- data/lib/testcentricity_web/utility_helpers.rb +11 -0
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/web_core/webdriver_helper.rb +19 -12
- metadata +6 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 358ac2e590a809b747d4c7d52e4444992dbda769d1e4f6e8db889b906b4eb4b9
|
|
4
|
+
data.tar.gz: 34693a0b11d1529ed050dcc8462704420906c4c2014e38ca4fde2f9639655a9b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
[](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
|
|
|
@@ -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
|
-
#
|
|
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
|
+
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-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
222
|
+
version: 16.4.1
|
|
223
223
|
- !ruby/object:Gem::Dependency
|
|
224
224
|
name: browserstack-local
|
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|