testcentricity_web 3.1.4 → 3.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 27b3d0a9499fc068808cad210e8d124aceb5e016
4
- data.tar.gz: 443d1e117ebac65ca3a86563c1b9ab74a523d6ef
3
+ metadata.gz: 5ef2ff69fd950def36daea8ec4c74e2a4c37a72f
4
+ data.tar.gz: 29f3e011376881b6938c72fbb6dddf1a4d32d21d
5
5
  SHA512:
6
- metadata.gz: 51c220dc510f7b815e19bee046d19902b6ac6902b0b7ae26aa36028c7424427e46e3f0e17922410ba7dc5d714add369820a975f8550e95347013460461f2207e
7
- data.tar.gz: 560133e5c651874c2911ac00082f0aa4d971fce4938897cfe777044dfc8a9152f789457faf631362e4665b55ebc8ea234197238e8ac9be6952cd9ebf79af6a8f
6
+ metadata.gz: baa7f038adbf64aff640adb34d4fa2837eeae258915a54a52608424ae3685b33eb3695b5b8c69b2113ef53c381647787f0534a762a30bba8ddbb1857fd72bc4a
7
+ data.tar.gz: 61ca7e651344b2f0df730002a6522c5df035f8514a18dc5174f96663b0a5a79a4e3cd7f873662abbea29e3e6a9156741f87a03a1d383acf25f0676b05ad03409
data/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
4
 
5
+ ## [3.1.5] - 2019-01-06
6
+
7
+ ### Added
8
+ * Additional methods to support WCAG 2.x accessibility testing and verification:
9
+ * `UIElement.aria_rowcount` method.
10
+ * `UIElement.aria_colcount` method.
11
+ * `UIElement.aria_sort` method.
12
+ * `UIElement.aria_haspopup?` method.
13
+ * `UIElement.aria_pressed?` method.
14
+ * Updated `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods to support verification of `aria_rowcount`, `aria_colcount`,
15
+ `aria_sort`, `aria_pressed`, and `aria_haspopup` properties.
16
+
17
+
5
18
  ## [3.1.4] - 2018-12-12
6
19
 
7
20
  ### Fixed
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- testcentricity_web (3.1.3)
4
+ testcentricity_web (3.1.4.2)
5
5
  appium_lib
6
6
  browserstack-local
7
7
  capybara (>= 3.1, < 4)
@@ -46,7 +46,7 @@ GEM
46
46
  chronic (0.10.2)
47
47
  coercible (1.0.0)
48
48
  descendants_tracker (~> 0.0.1)
49
- concurrent-ruby (1.1.3)
49
+ concurrent-ruby (1.1.4)
50
50
  descendants_tracker (0.0.4)
51
51
  thread_safe (~> 0.3, >= 0.3.1)
52
52
  equalizer (0.0.11)
@@ -57,11 +57,12 @@ GEM
57
57
  eventmachine (>= 0.12.0)
58
58
  websocket-driver (>= 0.5.1)
59
59
  ffi (1.9.25)
60
- i18n (1.1.1)
60
+ i18n (1.3.0)
61
61
  concurrent-ruby (~> 1.0)
62
62
  ice_nine (0.11.2)
63
63
  mini_mime (1.0.1)
64
64
  mini_portile2 (2.3.0)
65
+ net_http_ssl_fix (0.0.10)
65
66
  nokogiri (1.8.5)
66
67
  mini_portile2 (~> 2.3.0)
67
68
  os (1.0.0)
@@ -89,7 +90,8 @@ GEM
89
90
  coercible (~> 1.0)
90
91
  descendants_tracker (~> 0.0, >= 0.0.3)
91
92
  equalizer (~> 0.0, >= 0.0.9)
92
- webdrivers (3.4.3)
93
+ webdrivers (3.5.2)
94
+ net_http_ssl_fix
93
95
  nokogiri (~> 1.6)
94
96
  rubyzip (~> 1.0)
95
97
  selenium-webdriver (~> 3.0)
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011-2018, 2014-2018, Tony Mrozinski
1
+ Copyright (c) 2014-2019, Tony Mrozinski
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
data/README.md CHANGED
@@ -495,7 +495,7 @@ With TestCentricity, all UI elements are based on the **UIElement** class, and i
495
495
  element.get_attribute(attrib)
496
496
  element.get_native_attribute(attrib)
497
497
 
498
- **Object Accessibility methods:**
498
+ **Object Accessibility (A11y) methods:**
499
499
 
500
500
  element.role
501
501
  element.tabindex
@@ -506,11 +506,16 @@ With TestCentricity, all UI elements are based on the **UIElement** class, and i
506
506
  element.aria_invalid?
507
507
  element.aria_checked?
508
508
  element.aria_readonly?
509
+ element.aria_haspopup?
509
510
  element.aria_selected?
511
+ element.aria_pressed?
510
512
  element.aria_label
511
513
  element.aria_labelledby
512
514
  element.aria_describedby
513
515
  element.aria_live
516
+ element.aria_sort
517
+ element.aria_rowcount
518
+ element.aria_colcount
514
519
 
515
520
  **Waiting methods:**
516
521
 
@@ -1554,7 +1559,7 @@ landscape orientation running on the BrowserStack service:
1554
1559
 
1555
1560
  ## Copyright and License
1556
1561
 
1557
- TestCentricity™ Framework is Copyright (c) 2014-2018, Tony Mrozinski.
1562
+ TestCentricity™ Framework is Copyright (c) 2014-2019, Tony Mrozinski.
1558
1563
  All rights reserved.
1559
1564
 
1560
1565
  Redistribution and use in source and binary forms, with or without
@@ -46,30 +46,31 @@ module TestCentricity
46
46
  @current = current
47
47
  end
48
48
 
49
- def to_hash(node_name)
49
+ def to_hash(node_name = nil)
50
50
  data = {}
51
- data[node_name] = {
52
- class: self.class.name,
53
- attributes: self.attributes
54
- }
51
+ if node_name.nil?
52
+ data = { class: self.class.name, attributes: self.attributes }
53
+ else
54
+ data[node_name] = { class: self.class.name, attributes: self.attributes }
55
+ end
55
56
  data
56
57
  end
57
58
 
58
- def to_yaml(node_name)
59
+ def to_yaml(node_name = nil)
59
60
  data = to_hash(node_name)
60
61
  data.to_yaml
61
62
  end
62
63
 
63
- def write_yaml_data(file_name, mode, node_name)
64
+ def write_yaml_data(file_name, mode, node_name = nil)
64
65
  File.open(file_name, mode) { |file| file.write(to_yaml(node_name)) }
65
66
  end
66
67
 
67
- def to_json(node_name)
68
+ def to_json(node_name = nil)
68
69
  data = to_hash(node_name)
69
70
  data.to_json
70
71
  end
71
72
 
72
- def write_json_data(file_name, mode, node_name)
73
+ def write_json_data(file_name, mode, node_name = nil)
73
74
  File.open(file_name, mode) { |file| file.write(to_json(node_name)) }
74
75
  end
75
76
  end
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '3.1.4'
2
+ VERSION = '3.1.5'
3
3
  end
@@ -692,6 +692,16 @@ module TestCentricity
692
692
  actual = ui_object.aria_checked?
693
693
  when :aria_readonly
694
694
  actual = ui_object.aria_readonly?
695
+ when :aria_pressed
696
+ actual = ui_object.aria_pressed?
697
+ when :aria_haspopup
698
+ actual = ui_object.aria_haspopup?
699
+ when :aria_sort
700
+ actual = ui_object.aria_sort
701
+ when :aria_rowcount
702
+ actual = ui_object.aria_rowcount
703
+ when :aria_colcount
704
+ actual = ui_object.aria_colcount
695
705
  else
696
706
  if property.is_a?(Hash)
697
707
  property.each do |key, value|
@@ -710,23 +720,6 @@ module TestCentricity
710
720
  actual = ui_object.get_native_attribute(value)
711
721
  end
712
722
  end
713
- else
714
- props = property.to_s.split('_')
715
- case props[0].to_sym
716
- when :cell
717
- cell = property.to_s.delete('cell_')
718
- cell = cell.split('_')
719
- actual = ui_object.get_table_cell(cell[0].to_i, cell[1].to_i)
720
- when :row
721
- row = property.to_s.delete('row_')
722
- actual = ui_object.get_table_row(row.to_i)
723
- when :column
724
- column = property.to_s.delete('column_')
725
- actual = ui_object.get_table_column(column.to_i)
726
- when :item
727
- item = property.to_s.delete('item_')
728
- actual = ui_object.get_list_item(item.to_i)
729
- end
730
723
  end
731
724
  end
732
725
  error_msg = "Expected UI object '#{ui_object.get_name}' (#{ui_object.get_locator}) #{property} property to"
@@ -892,6 +892,16 @@ module TestCentricity
892
892
  actual = ui_object.aria_checked?
893
893
  when :aria_readonly
894
894
  actual = ui_object.aria_readonly?
895
+ when :aria_pressed
896
+ actual = ui_object.aria_pressed?
897
+ when :aria_haspopup
898
+ actual = ui_object.aria_haspopup?
899
+ when :aria_sort
900
+ actual = ui_object.aria_sort
901
+ when :aria_rowcount
902
+ actual = ui_object.aria_rowcount
903
+ when :aria_colcount
904
+ actual = ui_object.aria_colcount
895
905
  else
896
906
  if property.is_a?(Hash)
897
907
  property.each do |key, value|
@@ -910,23 +920,6 @@ module TestCentricity
910
920
  actual = ui_object.get_native_attribute(value)
911
921
  end
912
922
  end
913
- else
914
- props = property.to_s.split('_')
915
- case props[0].to_sym
916
- when :cell
917
- cell = property.to_s.delete('cell_')
918
- cell = cell.split('_')
919
- actual = ui_object.get_table_cell(cell[0].to_i, cell[1].to_i)
920
- when :row
921
- row = property.to_s.delete('row_')
922
- actual = ui_object.get_table_row(row.to_i)
923
- when :column
924
- column = property.to_s.delete('column_')
925
- actual = ui_object.get_table_column(column.to_i)
926
- when :item
927
- item = property.to_s.delete('item_')
928
- actual = ui_object.get_list_item(item.to_i)
929
- end
930
923
  end
931
924
  end
932
925
  error_msg = "Expected UI object '#{ui_object.get_name}' (#{ui_object.get_locator}) #{property} property to"
@@ -211,7 +211,6 @@ module TestCentricity
211
211
  when :chrome, :chrome_headless
212
212
  if browser == :chrome
213
213
  options = Selenium::WebDriver::Chrome::Options.new
214
-
215
214
  prefs = {
216
215
  prompt_for_download: false,
217
216
  directory_upgrade: true,
@@ -626,6 +626,36 @@ module TestCentricity
626
626
  get_attribute('aria-live')
627
627
  end
628
628
 
629
+ # Return state of UI object's aria-sort property
630
+ #
631
+ # @return [String]
632
+ # @example
633
+ # name_column.aria_sort
634
+ #
635
+ def aria_sort
636
+ get_attribute('aria-sort')
637
+ end
638
+
639
+ # Return state of UI object's aria-rowcount property
640
+ #
641
+ # @return [Integer]
642
+ # @example
643
+ # user_grid.aria_rowcount
644
+ #
645
+ def aria_rowcount
646
+ get_attribute('aria-rowcount')
647
+ end
648
+
649
+ # Return state of UI object's aria-colcount property
650
+ #
651
+ # @return [Integer]
652
+ # @example
653
+ # user_grid.aria_colcount
654
+ #
655
+ def aria_colcount
656
+ get_attribute('aria-colcount')
657
+ end
658
+
629
659
  # Return state of UI object's aria-disabled property
630
660
  #
631
661
  # @return [Boolean]
@@ -703,6 +733,28 @@ module TestCentricity
703
733
  state.boolean? ? state : state == 'true'
704
734
  end
705
735
 
736
+ # Return state of UI object's aria-haspopup property
737
+ #
738
+ # @return [Boolean]
739
+ # @example
740
+ # user_avatar.aria_haspopup?
741
+ #
742
+ def aria_haspopup?
743
+ state = get_attribute('aria-haspopup')
744
+ state.boolean? ? state : state == 'true'
745
+ end
746
+
747
+ # Return state of UI object's aria-pressed property
748
+ #
749
+ # @return [Boolean]
750
+ # @example
751
+ # option1_button.aria_pressed?
752
+ #
753
+ def aria_pressed?
754
+ state = get_attribute('aria-pressed')
755
+ state.boolean? ? state : state == 'true'
756
+ end
757
+
706
758
  # Return state of UI object's aria-readonly property
707
759
  #
708
760
  # @return [Boolean]
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: 3.1.4
4
+ version: 3.1.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: 2018-12-12 00:00:00.000000000 Z
11
+ date: 2019-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler