testcentricity_web 4.7.1 → 4.7.3

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: aa2b9b061985c6e04005e82feb7b44b9901e13e2f78624a6f8a0e5c2edd91fa7
4
- data.tar.gz: 16eb4823d74ec97b771d50994485f60234ec5a44a1f13f7b51a26e9bd19f3b53
3
+ metadata.gz: 79874531a8b428afddd0d1ebfe58c52939afc33f55288c2084c56203debed285
4
+ data.tar.gz: b5d0ce46ddd3afe9255e4da5e0472cad4590cd11bd2a4395487a40cd61321f85
5
5
  SHA512:
6
- metadata.gz: 1f04b179abf04da0fe20e8beb228f5fbd9bd8542cc239ed75a23332c67cea8a4b1c04546d67fd79e3aee029d665d0d14a691a2a8338b6685a6852fba23a57316
7
- data.tar.gz: 31e95275639ac5691439c9f60440c3b9f4790dc68633b438478ff393e248c5ed8c91d12656a102be858f7a266fb67b4a245d3c4f4cc64972dbc8f7df7935ed43
6
+ metadata.gz: c056c09c69337a4503f4cfbb93b97fcc49a5603323fcd1e1324523bef23a7cfed372b96364f26dd782bce4bb7635ee7c4c28c00d22d33fc599a09798c12fc7e2
7
+ data.tar.gz: fe5769ea6a538242002280397b46f888e1eee03a2315a4f267f8b12becf02ea196c94de854c57463ac12a592ffa09c4f9d350ab3eb72df953509ae050fa1abda
data/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
4
 
5
+ ## [4.7.3] - 21-MAR-2026
6
+
7
+ ### Changed
8
+
9
+ * Update `json`, `nokogiri` and `rack` gems to address security vulnerabilities.
10
+
11
+
12
+ ## [4.7.2] - 09-FEB-2026
13
+
14
+ ### Added
15
+ * Added `UIElement.hasHorizontalOverflow?` and `UIElement.hasVerticalOverflow?` methods.
16
+ * Updated `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods to support verification of the following
17
+ `UIElement` properties:
18
+ * `horizontal_overflow`
19
+ * `vertical_overflow`
20
+
21
+
5
22
  ## [4.7.1] - 13-JAN-2026
6
23
 
7
24
  ### Fixed
data/README.md CHANGED
@@ -720,6 +720,11 @@ The `verify_ui_states` method supports the following property/state pairs:
720
720
  :secure Boolean
721
721
  :title String
722
722
 
723
+ **Buttons and Text Field Caption Overflow:**
724
+
725
+ :horizontal_overflow or :h_overflow Boolean
726
+ :vertical_overflow or :v_overflow Boolean
727
+
723
728
  **Text Fields:**
724
729
 
725
730
  :readonly Boolean
@@ -1065,6 +1070,43 @@ Baseline translation strings are stored in `.yml` files in the `config/locales/`
1065
1070
  ├── 📄 Gemfile
1066
1071
  └── 📄 README.md
1067
1072
 
1073
+ #### Testing for Text Overflow
1074
+
1075
+ The `verify_ui_states` method can be used to determine if text contained in fields or button captions is truncated due to
1076
+ text overflowing the horizontal or vertical bounds of the associated field or button. The problem of text overflow is especially
1077
+ concerning in web UIs that may be localized to support multiple languages and locales.
1078
+
1079
+ An example of horizontal text overflow in a field and vertical overflow in a button caption is depicted below.
1080
+
1081
+ ![Localized UI](https://raw.githubusercontent.com/TestCentricity/testcentricity_web/main/.github/images/Text_Overflow.png "Localized UI")
1082
+
1083
+ The example below depictsusing the `verify_ui_states` method to verify that text overflow is not occurring in the button
1084
+ captions for a localized popup Shopping Bag panel.
1085
+ ```ruby
1086
+ class BagViewPopup < TestCentricity::PageSection
1087
+ trait(:section_locator) { 'aside.ac-gn-bagview' }
1088
+ trait(:section_name) { 'Shopping Bag Popup' }
1089
+
1090
+ # Shopping Bag Popup UI elements
1091
+ label :bag_message, 'p[class*="ac-gn-bagview-message"]'
1092
+ lists bag_items_list: 'ul[class*="ac-gn-bagview-bag"]',
1093
+ bag_nav_list: 'ul.ac-gn-bagview-nav-list '
1094
+ button :checkout_button, 'a[class*="ac-gn-bagview-button-checkout"]'
1095
+
1096
+ def verify_checkout_ui
1097
+ ui = {
1098
+ checkout_button => {
1099
+ visible: true,
1100
+ enabled: true,
1101
+ caption: { translate: 'BagViewPopup.checkout' },
1102
+ h_overflow: false,
1103
+ v_overflow: false
1104
+ }
1105
+ }
1106
+ verify_ui_states(ui)
1107
+ end
1108
+ end
1109
+ ````
1068
1110
 
1069
1111
  ### Working With Custom UIElements
1070
1112
 
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '4.7.1'
2
+ VERSION = '4.7.3'
3
3
  end
@@ -99,6 +99,10 @@ module TestCentricity
99
99
  ui_object.get_column_count
100
100
  when :placeholder
101
101
  ui_object.get_placeholder
102
+ when :horizontal_overflow, :h_overflow
103
+ ui_object.hasHorizontalOverflow?
104
+ when :vertical_overflow, :v_overflow
105
+ ui_object.hasVerticalOverflow?
102
106
  when :min
103
107
  ui_object.get_min
104
108
  when :max
@@ -574,6 +574,30 @@ module TestCentricity
574
574
  end
575
575
  end
576
576
 
577
+ # Is UI object's text content truncated horizontally?
578
+ #
579
+ # @return [Boolean]
580
+ # @example
581
+ # help_message.hasHorizontalOverflow?
582
+ #
583
+ def hasHorizontalOverflow?
584
+ scroll_width = get_attribute(:scrollWidth)
585
+ client_width = get_attribute(:clientWidth)
586
+ scroll_width > client_width
587
+ end
588
+
589
+ # Is UI object's text content truncated vertically?
590
+ #
591
+ # @return [Boolean]
592
+ # @example
593
+ # help_message.hasVerticalOverflow?
594
+ #
595
+ def hasVerticalOverflow?
596
+ scroll_height = get_attribute(:scrollHeight)
597
+ client_height = get_attribute(:clientHeight)
598
+ scroll_height > client_height
599
+ end
600
+
577
601
  def get_value(visible = true)
578
602
  obj, type = find_element(visible)
579
603
  object_not_found_exception(obj, type)
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.1
4
+ version: 4.7.3
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-01-13 00:00:00.000000000 Z
11
+ date: 2026-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: axe-core-cucumber
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 10.2.0
47
+ version: 10.1.1
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 10.2.0
54
+ version: 10.1.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: cuke_modeler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 4.39.0
159
+ version: 4.41.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.39.0
166
+ version: 4.41.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: simplecov
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -304,6 +304,20 @@ dependencies:
304
304
  - - ">="
305
305
  - !ruby/object:Gem::Version
306
306
  version: '0'
307
+ - !ruby/object:Gem::Dependency
308
+ name: json
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - ">="
312
+ - !ruby/object:Gem::Version
313
+ version: '0'
314
+ type: :runtime
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: '0'
307
321
  - !ruby/object:Gem::Dependency
308
322
  name: os
309
323
  requirement: !ruby/object:Gem::Requirement