testcentricity_web 4.6.8 → 4.6.9

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: 0bd441ac4c410c391d2f47f947930172f688ca34f46da359424326d0e8c61f93
4
- data.tar.gz: 91f94ef91ba8cda3556c95997942e6af2c944435db0773a8628fc203a96ad6cc
3
+ metadata.gz: 48391198c0afc8b42f948c2e3dd6dbf77b0b8ff486fa4e9746bbaf2ec34c0231
4
+ data.tar.gz: e377c0af90d0b0478ea4dcad9ef08b1df337facc87dabc0215cbbed6c2a51a31
5
5
  SHA512:
6
- metadata.gz: 58069c08c76b9a85ed210e065e33e1eb247e1eaf5f38b7668ae651af5d5e80b41f7f0225536d80af82677472af2f0893bdd908be205f31da4544416b1c7ef2a6
7
- data.tar.gz: cb214a4773d6e611114502f6290ef7312fc8204474103b4454903b7a3ddb771fd8e512b9f2c731b6be33c5e3165432d6f80f94977476ef5642f66e9c2d309a0c
6
+ metadata.gz: 762285729fbfcfc5f56b56a060f5a32d0e23f9f865417733621be3241dc9da01ca6b562991aa0d871989702d6a1b54952f3f2a7c7d640e9f68c726e5dd1ad0f4
7
+ data.tar.gz: fc982517f54bf55c571f5b0062abd1237e6df518badda8711a9ac2812faebfaba58d59703d739c91b25a9bf9e4187399160dc15449fa637f6a5e4d263a9651e8
data/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
4
 
5
+ ## [4.6.9] - 31-OCT-2025
6
+
7
+ ### Added
8
+
9
+ * Added `Table.get_footer_columns` and `Table.get_footer_column`methods.
10
+ * Updated `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods to support verification of the following
11
+ `Table` properties:
12
+ * `:column_footers`
13
+ * `:column_footer`
14
+ * `:column_header`
15
+
16
+ ### Changed
17
+
18
+ * `UIElement.get_max` now works with HTML `<progress>` elements.
19
+
20
+
5
21
  ## [4.6.8] - 27-OCT-2025
6
22
 
7
23
  ### Changed
data/README.md CHANGED
@@ -24,7 +24,7 @@ The TestCentricity™ For Web gem supports connecting to, and running automated
24
24
  * [TestingBot](https://testingbot.com/features)
25
25
  * [LambdaTest](https://www.lambdatest.com/selenium-automation)
26
26
  * web portals utilizing JavaScript front end application frameworks like Ember, React, Angular, and GWT
27
- * web pages containing HTML5 Video and Audio objects
27
+ * web pages containing HTML5 Video and Audio objects, including text caption tracks
28
28
  * locally hosted emulated iOS Mobile Safari, Android, Windows Phone, or Blackberry mobile browsers (running within a local instance of Chrome)
29
29
 
30
30
 
@@ -40,15 +40,15 @@ Cucumber can be found [here](https://github.com/TestCentricity/tc_multi_webdrive
40
40
 
41
41
  ### Which gem should I use?
42
42
 
43
- * The [TestCentricity For **Web** gem](https://rubygems.org/gems/testcentricity_web) supports testing of web interfaces via desktop and mobile web browsers
43
+ * The [TestCentricity For **Web** gem](https://rubygems.org/gems/testcentricity_web) supports testing of web apps via desktop and mobile web browsers
44
44
  * The [TestCentricity For **Mobile** gem](https://rubygems.org/gems/testcentricity_mobile) supports testing of native iOS and Android mobile apps
45
45
  * The [TestCentricity For **Apps** gem](https://rubygems.org/gems/testcentricity_apps) supports testing of MacOS desktop apps and native iOS and Android mobile apps
46
46
 
47
- | Tested platforms | TestCentricity For Web | TestCentricity For Mobile | TestCentricity For Apps |
48
- |---------------------------------------------|:-:|:-:|:-:|
49
- | Desktop/mobile web browsers only | Yes | No | No |
50
- | Native mobile iOS and/or Android apps only | No | Yes | Yes |
51
- | MacOS desktop apps | No | No | Yes |
47
+ | Tested platforms | TestCentricity For Web | TestCentricity For Mobile | TestCentricity For Apps |
48
+ |--------------------------------------------|:----------------------:|:-------------------------:|:-----------------------:|
49
+ | Desktop/mobile web apps only | Yes | No | No |
50
+ | Native mobile iOS and/or Android apps only | No | Yes | Yes |
51
+ | MacOS desktop apps | No | No | Yes |
52
52
 
53
53
 
54
54
  ## Installation
@@ -784,9 +784,12 @@ The `verify_ui_states` method supports the following property/state pairs:
784
784
  :rowcount Integer
785
785
  :columncount Integer
786
786
  :columnheaders Array of String
787
+ :columnfooters Array of String
787
788
  :cell Hash
788
789
  :row Hash
789
790
  :column Hash
791
+ :column_header Hash
792
+ :column_footer Hash
790
793
  :cell_attribute Integer, Float, or String
791
794
  :row_attribute Integer, Float, or String
792
795
  :aria_rowindex Integer
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '4.6.8'
2
+ VERSION = '4.6.9'
3
3
  end
@@ -165,6 +165,8 @@ module TestCentricity
165
165
  ui_object.get_group_headings
166
166
  when :column_headers
167
167
  ui_object.get_header_columns
168
+ when :column_footers
169
+ ui_object.get_footer_columns
168
170
  when :count, :count_visible
169
171
  ui_object.count(visible = true)
170
172
  when :all_items, :all_list_items
@@ -281,6 +283,10 @@ module TestCentricity
281
283
  ui_object.get_table_row(value.to_i)
282
284
  when :column
283
285
  ui_object.get_table_column(value.to_i)
286
+ when :column_header
287
+ ui_object.get_header_column(value.to_i)
288
+ when :column_footer
289
+ ui_object.get_footer_column(value.to_i)
284
290
  when :item
285
291
  ui_object.get_list_item(value.to_i)
286
292
  when :attribute
@@ -8,6 +8,9 @@ module TestCentricity
8
8
  attr_accessor :table_header
9
9
  attr_accessor :header_row
10
10
  attr_accessor :header_column
11
+ attr_accessor :table_footer
12
+ attr_accessor :footer_row
13
+ attr_accessor :footer_column
11
14
  attr_accessor :row_header
12
15
  attr_accessor :tree_expand
13
16
  attr_accessor :tree_collapse
@@ -24,6 +27,9 @@ module TestCentricity
24
27
  table_header: 'thead',
25
28
  header_row: 'tr',
26
29
  header_column: 'th',
30
+ table_footer: 'tfoot',
31
+ footer_row: 'tr',
32
+ footer_column: 'th',
27
33
  row_header: nil
28
34
  }
29
35
 
@@ -55,6 +61,12 @@ module TestCentricity
55
61
  @header_row = value
56
62
  when :header_column
57
63
  @header_column = value
64
+ when :table_footer
65
+ @table_footer = value
66
+ when :footer_row
67
+ @footer_row = value
68
+ when :footer_column
69
+ @footer_column = value
58
70
  when :row_header
59
71
  @row_header = value
60
72
  when :tree_expand
@@ -576,6 +588,36 @@ module TestCentricity
576
588
  columns
577
589
  end
578
590
 
591
+ def get_footer_column(column)
592
+ column_count = get_column_count
593
+ raise "Column #{column} exceeds number of columns (#{column_count}) in table footer #{object_ref_message}" if column > column_count
594
+ case @locator_type
595
+ when :xpath
596
+ set_alt_locator("#{@locator}//#{@table_footer}/#{@footer_row}/#{@footer_column}[#{column}]")
597
+ when :css
598
+ set_alt_locator("#{@locator} #{@table_footer} > #{@footer_row} > #{@footer_column}:nth-of-type(#{column})")
599
+ end
600
+ value = get_value(:all) if exists?(:all)
601
+ clear_alt_locator
602
+ value
603
+ end
604
+
605
+ def get_footer_columns
606
+ columns = []
607
+ column_count = get_column_count
608
+ (1..column_count).each do |column|
609
+ case @locator_type
610
+ when :xpath
611
+ set_alt_locator("#{@locator}//#{@table_footer}/#{@footer_row}/#{@footer_column}[#{column}]")
612
+ when :css
613
+ set_alt_locator("#{@locator} #{@table_footer} > #{@footer_row} > #{@footer_column}:nth-of-type(#{column})")
614
+ end
615
+ columns.push(get_value(:all)) if exists?(:all)
616
+ end
617
+ clear_alt_locator
618
+ columns
619
+ end
620
+
579
621
  def is_table_row_expanded?(row, column)
580
622
  row_count = get_row_count
581
623
  raise "Row #{row} exceeds number of rows (#{row_count}) in table #{object_ref_message}" if row > row_count
@@ -92,27 +92,6 @@ module TestCentricity
92
92
  end
93
93
  end
94
94
 
95
- # Return max attribute of a number type text field.
96
- #
97
- # @return [Integer]
98
- # @example
99
- # max_points_value = points_field.get_max
100
- #
101
- def get_max
102
- obj, = find_element
103
- object_not_found_exception(obj, nil)
104
- max = obj.native.attribute('max')
105
- unless max.blank?
106
- if max.is_int?
107
- max.to_i
108
- elsif max.is_float?
109
- max.to_f
110
- else
111
- max
112
- end
113
- end
114
- end
115
-
116
95
  # Return step attribute of a number type text field.
117
96
  #
118
97
  # @return [Integer]
@@ -577,13 +577,15 @@ module TestCentricity
577
577
  def get_value(visible = true)
578
578
  obj, type = find_element(visible)
579
579
  object_not_found_exception(obj, type)
580
- text = case obj.tag_name.downcase
581
- when 'input', 'select', 'textarea'
582
- obj.value
583
- else
584
- obj.text
585
- end
586
- text.gsub(/[[:space:]]+/, ' ').strip unless text.nil?
580
+ value = case obj.tag_name.downcase
581
+ when 'input', 'select', 'textarea'
582
+ obj.value
583
+ when 'progress'
584
+ obj.value.to_i
585
+ else
586
+ obj.text
587
+ end
588
+ value.is_a?(String) ? value.gsub(/[[:space:]]+/, ' ').strip : value
587
589
  end
588
590
 
589
591
  alias get_caption get_value
@@ -700,6 +702,27 @@ module TestCentricity
700
702
  )
701
703
  end
702
704
 
705
+ # Return max attribute of a number type text field or a progress bar.
706
+ #
707
+ # @return [Integer]
708
+ # @example
709
+ # max_points_value = points_field.get_max
710
+ #
711
+ def get_max
712
+ obj, = find_element
713
+ object_not_found_exception(obj, nil)
714
+ max = obj.native.attribute('max')
715
+ unless max.blank?
716
+ if max.is_int?
717
+ max.to_i
718
+ elsif max.is_float?
719
+ max.to_f
720
+ else
721
+ max
722
+ end
723
+ end
724
+ end
725
+
703
726
  # Return UI object's style property
704
727
  #
705
728
  # @return [String]
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.6.8
4
+ version: 4.6.9
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: 2025-10-25 00:00:00.000000000 Z
11
+ date: 2025-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 4.37.0
145
+ version: 4.38.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 4.37.0
152
+ version: 4.38.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: simplecov
155
155
  requirement: !ruby/object:Gem::Requirement