testcentricity_web 3.0.20 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/Gemfile.lock +1 -1
- data/README.md +13 -1
- data/lib/testcentricity_web/data_objects/environment.rb +16 -11
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/web_core/page_objects_helper.rb +18 -0
- data/lib/testcentricity_web/web_core/page_sections_helper.rb +18 -0
- data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +94 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1f090325a684cd5d9944d021391a2919efabcc6
|
4
|
+
data.tar.gz: 961cc9979f42aec5554254812365bf81ad3cbbe5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cad0f6ae2b183661acc9cf1769fb649dfe61db3a30dd1323a1434b2d9973fae183c69423ebc235aa31efb3545aaee76d5e9a90ce6f3e030e63be865fec43944
|
7
|
+
data.tar.gz: 02d5753fe6b347e868144d3e1cee790ad8c0ddbc90075a773d5cfa367f0a8d5a2dbf80f2f9b7f74c8a8e4c126a44e232a114d292fad815b69efd8f4da160eb88
|
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
|
+
## [3.1.0] - 2018-11-10
|
6
|
+
|
7
|
+
### Added
|
8
|
+
* Adding greater support for WCAG 2.x accessibility testing and verification:
|
9
|
+
* `UIElement.role` method.
|
10
|
+
* `UIElement.tabindex` method.
|
11
|
+
* `UIElement.aria_labelledby` method.
|
12
|
+
* `UIElement.aria_describedby` method.
|
13
|
+
* `UIElement.aria_live` method.
|
14
|
+
* `UIElement.aria_selected?` method.
|
15
|
+
* `UIElement.aria_hidden?` method.
|
16
|
+
* `UIElement.aria_expanded?` method.
|
17
|
+
* `UIElement.aria_required?` method.
|
18
|
+
* Updated `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods to support verification of `role`, `tabindex`, `aria-labelledby`,
|
19
|
+
`aria-describedby`, `aria-live`, `aria-selected`, `aria-hidden`, `aria-expanded`, and `aria-required` properties.
|
20
|
+
|
21
|
+
|
5
22
|
## [3.0.20] - 2018-11-08
|
6
23
|
|
7
24
|
### Changed
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -494,9 +494,21 @@ With TestCentricity, all UI elements are based on the **UIElement** class, and i
|
|
494
494
|
element.y
|
495
495
|
element.get_attribute(attrib)
|
496
496
|
element.get_native_attribute(attrib)
|
497
|
+
|
498
|
+
**Object Accessibility methods:**
|
499
|
+
|
497
500
|
element.aria_disabled?
|
498
501
|
element.aria_label
|
499
|
-
|
502
|
+
element.role
|
503
|
+
element.tabindex
|
504
|
+
element.aria_labelledby
|
505
|
+
element.aria_describedby
|
506
|
+
element.aria_live
|
507
|
+
element.aria_selected?
|
508
|
+
element.aria_hidden?
|
509
|
+
element.aria_expanded?
|
510
|
+
element.aria_required?
|
511
|
+
|
500
512
|
**Waiting methods:**
|
501
513
|
|
502
514
|
element.wait_until_exists(seconds)
|
@@ -47,6 +47,8 @@ module TestCentricity
|
|
47
47
|
attr_accessor :portal_context
|
48
48
|
attr_accessor :external_page
|
49
49
|
|
50
|
+
attr_accessor :a11y_standard
|
51
|
+
|
50
52
|
attr_accessor :protocol
|
51
53
|
attr_accessor :hostname
|
52
54
|
attr_accessor :base_url
|
@@ -60,17 +62,19 @@ module TestCentricity
|
|
60
62
|
attr_accessor :db_password
|
61
63
|
|
62
64
|
def initialize(data)
|
63
|
-
@protocol
|
64
|
-
@hostname
|
65
|
-
@base_url
|
66
|
-
@user_id
|
67
|
-
@password
|
68
|
-
@append
|
69
|
-
@option1
|
70
|
-
@option2
|
71
|
-
@dns
|
72
|
-
@db_username
|
73
|
-
@db_password
|
65
|
+
@protocol = data['PROTOCOL']
|
66
|
+
@hostname = data['HOST_NAME']
|
67
|
+
@base_url = data['BASE_URL']
|
68
|
+
@user_id = data['USER_ID']
|
69
|
+
@password = data['PASSWORD']
|
70
|
+
@append = data['APPEND']
|
71
|
+
@option1 = data['OPTIONAL_1']
|
72
|
+
@option2 = data['OPTIONAL_2']
|
73
|
+
@dns = data['DNS']
|
74
|
+
@db_username = data['DB_USERNAME']
|
75
|
+
@db_password = data['DB_PASSWORD']
|
76
|
+
@a11y_standard = ENV['ACCESSIBILITY_STANDARD'] || 'best-practice'
|
77
|
+
|
74
78
|
super
|
75
79
|
end
|
76
80
|
|
@@ -290,6 +294,7 @@ module TestCentricity
|
|
290
294
|
report_header = "#{report_header} <b>Locale:</b>\t\t #{ENV['LOCALE']}\n" if ENV['LOCALE']
|
291
295
|
report_header = "#{report_header} <b>Language:</b>\t #{ENV['LANGUAGE']}\n" if ENV['LANGUAGE']
|
292
296
|
report_header = "#{report_header} <b>Country:</b>\t #{ENV['COUNTRY']}\n" if ENV['COUNTRY']
|
297
|
+
report_header = "#{report_header} <b>WCAG Accessibility Standard:</b>\t #{ENV['ACCESSIBILITY_STANDARD']}\n" if ENV['ACCESSIBILITY_STANDARD']
|
293
298
|
"#{report_header}\n\n"
|
294
299
|
end
|
295
300
|
end
|
@@ -664,10 +664,28 @@ module TestCentricity
|
|
664
664
|
actual = ui_object.get_siebel_options
|
665
665
|
when :style
|
666
666
|
actual = ui_object.style
|
667
|
+
when :role
|
668
|
+
actual = ui_object.role
|
667
669
|
when :aria_label
|
668
670
|
actual = ui_object.aria_label
|
669
671
|
when :aria_disabled
|
670
672
|
actual = ui_object.aria_disabled?
|
673
|
+
when :tabindex
|
674
|
+
actual = ui_object.tabindex
|
675
|
+
when :aria_labelledby
|
676
|
+
actual = ui_object.aria_labelledby
|
677
|
+
when :aria_describedby
|
678
|
+
actual = ui_object.aria_describedby
|
679
|
+
when :aria_live
|
680
|
+
actual = ui_object.aria_live
|
681
|
+
when :aria_selected
|
682
|
+
actual = ui_object.aria_selected?
|
683
|
+
when :aria_hidden
|
684
|
+
actual = ui_object.aria_hidden?
|
685
|
+
when :aria_expanded
|
686
|
+
actual = ui_object.aria_expanded?
|
687
|
+
when :aria_required
|
688
|
+
actual = ui_object.aria_required?
|
671
689
|
else
|
672
690
|
if property.is_a?(Hash)
|
673
691
|
property.each do |key, value|
|
@@ -864,10 +864,28 @@ module TestCentricity
|
|
864
864
|
actual = ui_object.get_siebel_options
|
865
865
|
when :style
|
866
866
|
actual = ui_object.style
|
867
|
+
when :role
|
868
|
+
actual = ui_object.role
|
867
869
|
when :aria_label
|
868
870
|
actual = ui_object.aria_label
|
869
871
|
when :aria_disabled
|
870
872
|
actual = ui_object.aria_disabled?
|
873
|
+
when :tabindex
|
874
|
+
actual = ui_object.tabindex
|
875
|
+
when :aria_labelledby
|
876
|
+
actual = ui_object.aria_labelledby
|
877
|
+
when :aria_describedby
|
878
|
+
actual = ui_object.aria_describedby
|
879
|
+
when :aria_live
|
880
|
+
actual = ui_object.aria_live
|
881
|
+
when :aria_selected
|
882
|
+
actual = ui_object.aria_selected?
|
883
|
+
when :aria_hidden
|
884
|
+
actual = ui_object.aria_hidden?
|
885
|
+
when :aria_expanded
|
886
|
+
actual = ui_object.aria_expanded?
|
887
|
+
when :aria_required
|
888
|
+
actual = ui_object.aria_required?
|
871
889
|
else
|
872
890
|
if property.is_a?(Hash)
|
873
891
|
property.each do |key, value|
|
@@ -566,6 +566,26 @@ module TestCentricity
|
|
566
566
|
get_attribute('style')
|
567
567
|
end
|
568
568
|
|
569
|
+
# Return state of UI object's role property
|
570
|
+
#
|
571
|
+
# @return [String]
|
572
|
+
# @example
|
573
|
+
# buy_now_button.role
|
574
|
+
#
|
575
|
+
def role
|
576
|
+
get_attribute('role')
|
577
|
+
end
|
578
|
+
|
579
|
+
# Return state of UI object's tabindex property
|
580
|
+
#
|
581
|
+
# @return [String]
|
582
|
+
# @example
|
583
|
+
# buy_now_button.tabindex
|
584
|
+
#
|
585
|
+
def tabindex
|
586
|
+
get_attribute('tabindex')
|
587
|
+
end
|
588
|
+
|
569
589
|
# Return state of UI object's aria-label property
|
570
590
|
#
|
571
591
|
# @return [String]
|
@@ -576,6 +596,36 @@ module TestCentricity
|
|
576
596
|
get_attribute('aria-label')
|
577
597
|
end
|
578
598
|
|
599
|
+
# Return state of UI object's aria-labelledby property
|
600
|
+
#
|
601
|
+
# @return [String]
|
602
|
+
# @example
|
603
|
+
# buy_now_button.aria_labelledby
|
604
|
+
#
|
605
|
+
def aria_labelledby
|
606
|
+
get_attribute('aria-labelledby')
|
607
|
+
end
|
608
|
+
|
609
|
+
# Return state of UI object's aria-describedby property
|
610
|
+
#
|
611
|
+
# @return [String]
|
612
|
+
# @example
|
613
|
+
# buy_now_button.aria_describedby
|
614
|
+
#
|
615
|
+
def aria_describedby
|
616
|
+
get_attribute('aria-describedby')
|
617
|
+
end
|
618
|
+
|
619
|
+
# Return state of UI object's aria-live property
|
620
|
+
#
|
621
|
+
# @return [String]
|
622
|
+
# @example
|
623
|
+
# properties_list.aria_live
|
624
|
+
#
|
625
|
+
def aria_live
|
626
|
+
get_attribute('aria-live')
|
627
|
+
end
|
628
|
+
|
579
629
|
# Return state of UI object's aria-disabled property
|
580
630
|
#
|
581
631
|
# @return [Boolean]
|
@@ -587,6 +637,50 @@ module TestCentricity
|
|
587
637
|
state.boolean? ? state : state == 'true'
|
588
638
|
end
|
589
639
|
|
640
|
+
# Return state of UI object's aria-selected property
|
641
|
+
#
|
642
|
+
# @return [Boolean]
|
643
|
+
# @example
|
644
|
+
# nutrition_info_tab.aria_selected?
|
645
|
+
#
|
646
|
+
def aria_selected?
|
647
|
+
state = get_attribute('aria-selected')
|
648
|
+
state.boolean? ? state : state == 'true'
|
649
|
+
end
|
650
|
+
|
651
|
+
# Return state of UI object's aria-hidden property
|
652
|
+
#
|
653
|
+
# @return [Boolean]
|
654
|
+
# @example
|
655
|
+
# nutrition_info_tab.aria_hidden?
|
656
|
+
#
|
657
|
+
def aria_hidden?
|
658
|
+
state = get_attribute('aria-hidden')
|
659
|
+
state.boolean? ? state : state == 'true'
|
660
|
+
end
|
661
|
+
|
662
|
+
# Return state of UI object's aria-expanded property
|
663
|
+
#
|
664
|
+
# @return [Boolean]
|
665
|
+
# @example
|
666
|
+
# catalog_tree.aria_expanded?
|
667
|
+
#
|
668
|
+
def aria_expanded?
|
669
|
+
state = get_attribute('aria-expanded')
|
670
|
+
state.boolean? ? state : state == 'true'
|
671
|
+
end
|
672
|
+
|
673
|
+
# Return state of UI object's aria-required property
|
674
|
+
#
|
675
|
+
# @return [Boolean]
|
676
|
+
# @example
|
677
|
+
# home_phone_field.aria_required?
|
678
|
+
#
|
679
|
+
def aria_required?
|
680
|
+
state = get_attribute('aria-required')
|
681
|
+
state.boolean? ? state : state == 'true'
|
682
|
+
end
|
683
|
+
|
590
684
|
def get_attribute(attrib)
|
591
685
|
obj, type = find_element(false)
|
592
686
|
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: 3.0
|
4
|
+
version: 3.1.0
|
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-11-
|
11
|
+
date: 2018-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|