testcentricity_web 4.1.9 → 4.3.0

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.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +96 -1
  3. data/README.md +88 -48
  4. data/lib/testcentricity_web/browser_helper.rb +2 -1
  5. data/lib/testcentricity_web/data_objects/environment.rb +0 -1
  6. data/lib/testcentricity_web/version.rb +1 -1
  7. data/lib/testcentricity_web/web_core/page_objects_helper.rb +40 -3
  8. data/lib/testcentricity_web/web_core/webdriver_helper.rb +89 -80
  9. data/lib/testcentricity_web/web_elements/media.rb +108 -0
  10. data/lib/testcentricity_web/web_elements/textfield.rb +28 -0
  11. data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +39 -1
  12. metadata +37 -181
  13. data/.gitignore +0 -39
  14. data/.idea/.name +0 -1
  15. data/.idea/encodings.xml +0 -6
  16. data/.idea/misc.xml +0 -4
  17. data/.idea/modules.xml +0 -8
  18. data/.idea/vcs.xml +0 -7
  19. data/.rspec +0 -4
  20. data/.rubocop.yml +0 -38
  21. data/.ruby-version +0 -1
  22. data/.simplecov +0 -9
  23. data/CODE_OF_CONDUCT.md +0 -13
  24. data/Gemfile +0 -6
  25. data/Rakefile +0 -115
  26. data/config/cucumber.yml +0 -171
  27. data/config/locales/en-US.yml +0 -56
  28. data/config/test_data/LOCAL_data.json +0 -15
  29. data/config/test_data/LOCAL_data.xls +0 -0
  30. data/config/test_data/LOCAL_data.yml +0 -11
  31. data/config/test_data/data.json +0 -25
  32. data/config/test_data/data.xls +0 -0
  33. data/config/test_data/data.yml +0 -20
  34. data/docker-compose.yml +0 -48
  35. data/features/basic_form_page_css.feature +0 -54
  36. data/features/basic_form_page_xpath.feature +0 -26
  37. data/features/custom_controls.feature +0 -29
  38. data/features/media_players.feature +0 -67
  39. data/features/step_definitions/generic_steps.rb.rb +0 -124
  40. data/features/step_definitions/media_steps.rb +0 -30
  41. data/features/support/data/form_data.rb +0 -43
  42. data/features/support/env.rb +0 -51
  43. data/features/support/hooks.rb +0 -270
  44. data/features/support/pages/base_test_page.rb +0 -22
  45. data/features/support/pages/basic_css_form_page.rb +0 -53
  46. data/features/support/pages/basic_form_page.rb +0 -429
  47. data/features/support/pages/basic_xpath_form_page.rb +0 -54
  48. data/features/support/pages/custom_controls_page.rb +0 -263
  49. data/features/support/pages/indexed_sections_page.rb +0 -57
  50. data/features/support/pages/media_test_page.rb +0 -207
  51. data/features/support/sections/header_nav.rb +0 -48
  52. data/features/support/sections/product_card.rb +0 -39
  53. data/features/support/world_data.rb +0 -12
  54. data/features/support/world_pages.rb +0 -18
  55. data/reports/.keep +0 -1
  56. data/spec/fixtures/page_object.rb +0 -22
  57. data/spec/fixtures/section_object.rb +0 -21
  58. data/spec/spec_helper.rb +0 -31
  59. data/spec/testcentricity_web/browser_spec.rb +0 -41
  60. data/spec/testcentricity_web/elements/audio_spec.rb +0 -68
  61. data/spec/testcentricity_web/elements/button_spec.rb +0 -18
  62. data/spec/testcentricity_web/elements/checkbox_spec.rb +0 -33
  63. data/spec/testcentricity_web/elements/file_field_spec.rb +0 -13
  64. data/spec/testcentricity_web/elements/image_spec.rb +0 -33
  65. data/spec/testcentricity_web/elements/label_spec.rb +0 -18
  66. data/spec/testcentricity_web/elements/link_spec.rb +0 -23
  67. data/spec/testcentricity_web/elements/list_spec.rb +0 -13
  68. data/spec/testcentricity_web/elements/radio_spec.rb +0 -28
  69. data/spec/testcentricity_web/elements/ui_element_spec.rb +0 -125
  70. data/spec/testcentricity_web/elements/video_spec.rb +0 -68
  71. data/spec/testcentricity_web/helper_specs/object_helpers_spec.rb +0 -39
  72. data/spec/testcentricity_web/helper_specs/string_helpers_spec.rb +0 -49
  73. data/spec/testcentricity_web/page_object_spec.rb +0 -90
  74. data/spec/testcentricity_web/section_object_spec.rb +0 -72
  75. data/spec/testcentricity_web/version_spec.rb +0 -7
  76. data/spec/testcentricity_web/webdriver_connect/grid_webdriver_spec.rb +0 -72
  77. data/spec/testcentricity_web/webdriver_connect/local_webdriver_spec.rb +0 -86
  78. data/spec/testcentricity_web/webdriver_connect/mobile_webdriver_spec.rb +0 -65
  79. data/test_site/basic_test_page.html +0 -290
  80. data/test_site/chosen-sprite.png +0 -0
  81. data/test_site/chosen-sprite@2x.png +0 -0
  82. data/test_site/chosen.css +0 -496
  83. data/test_site/chosen.jquery.js +0 -1359
  84. data/test_site/chosen.jquery.min.js +0 -3
  85. data/test_site/chosen.min.css +0 -11
  86. data/test_site/chosen.proto.js +0 -1399
  87. data/test_site/chosen.proto.min.js +0 -3
  88. data/test_site/composer.json +0 -36
  89. data/test_site/custom_controls_page.html +0 -629
  90. data/test_site/docsupport/chosen.png +0 -0
  91. data/test_site/docsupport/init.js +0 -11
  92. data/test_site/docsupport/init.proto.js +0 -16
  93. data/test_site/docsupport/jquery-1.12.4.min.js +0 -5
  94. data/test_site/docsupport/jquery-3.2.1.min.js +0 -4
  95. data/test_site/docsupport/oss-credit.png +0 -0
  96. data/test_site/docsupport/prism.css +0 -108
  97. data/test_site/docsupport/prism.js +0 -9
  98. data/test_site/docsupport/prototype-1.7.0.0.js +0 -6082
  99. data/test_site/docsupport/style.css +0 -219
  100. data/test_site/images/Blouse_Black.jpg +0 -0
  101. data/test_site/images/Granny.jpg +0 -0
  102. data/test_site/images/Printed_Dress.jpg +0 -0
  103. data/test_site/images/T-shirt.jpg +0 -0
  104. data/test_site/images/Wilder.jpg +0 -0
  105. data/test_site/images/You_Betcha.jpg +0 -0
  106. data/test_site/images/jeans3.jpg +0 -0
  107. data/test_site/indexed_sections_page.html +0 -215
  108. data/test_site/media/MIB2-subtitles-pt-BR.vtt +0 -49
  109. data/test_site/media/MIB2.mp4 +0 -0
  110. data/test_site/media/MP4_small.mp4 +0 -0
  111. data/test_site/media/MPS_sample.mp3 +0 -0
  112. data/test_site/media/bbc_scotland_report.mp3 +0 -0
  113. data/test_site/media/count_and_bars.mp4 +0 -0
  114. data/test_site/media_page.html +0 -86
  115. data/testcentricity_web.gemspec +0 -57
data/config/cucumber.yml DELETED
@@ -1,171 +0,0 @@
1
- <% desktop = "--require features BROWSER_TILE=true BROWSER_SIZE=1300,1000 --publish-quiet" %>
2
- <% mobile = "--require features BROWSER_TILE=true --publish-quiet" %>
3
- <% reports = "--require features --format pretty --format html --out reports/test_results.html --format junit --out reports --format json --out reports/test_results.json" %>
4
-
5
-
6
- #==============
7
- # generic test context profiles
8
- #==============
9
-
10
- failing: --tags '@failing and not @wip'
11
- wip: --tags '@wip and not @failing'
12
- dev: --tags '@dev and (not @wip and not @failing)'
13
-
14
-
15
- #==============
16
- # test reporting profiles
17
- #==============
18
-
19
- report: <%= reports %> REPORTING=true
20
- parallel: PARALLEL=true REPORTING=true --require features --format pretty --format html --out reports/test_results<%= ENV['TEST_ENV_NUMBER'] %>.html --format junit --out reports --format json --out reports/test_results<%= ENV['TEST_ENV_NUMBER'] %>.json
21
-
22
-
23
- #==============
24
- # profiles for locally hosted desktop web browsers
25
- #==============
26
-
27
- local: TEST_ENVIRONMENT=LOCAL
28
- chrome: WEB_BROWSER=chrome DATA_SOURCE=yaml <%= desktop %>
29
- edge: WEB_BROWSER=edge DATA_SOURCE=json <%= desktop %>
30
- safari: WEB_BROWSER=safari DATA_SOURCE=Excel <%= desktop %>
31
- firefox: WEB_BROWSER=firefox <%= desktop %>
32
-
33
- chrome_local: --profile local --profile chrome
34
- edge_local: --profile local --profile edge
35
- safari_local: --profile local --profile safari
36
- firefox_local: --profile local --profile firefox
37
-
38
- firefox_headless: --profile local WEB_BROWSER=firefox_headless <%= desktop %>
39
- chrome_headless: --profile local WEB_BROWSER=chrome_headless <%= desktop %>
40
- edge_headless: --profile local WEB_BROWSER=edge_headless <%= desktop %>
41
-
42
-
43
- #==============
44
- # profile for Selenium Grid and Dockerized Selenium Grid hosted desktop web browsers
45
- #==============
46
- grid: SELENIUM=remote TEST_ENVIRONMENT=REMOTE REMOTE_ENDPOINT="http://localhost:4444/wd/hub"
47
- chrome_grid: --profile grid --profile chrome
48
- edge_grid: --profile grid --profile edge
49
- firefox_grid: --profile grid --profile firefox
50
-
51
-
52
- #==============
53
- # profiles for mobile device screen orientation
54
- #==============
55
-
56
- landscape: ORIENTATION=landscape
57
- portrait: ORIENTATION=portrait
58
-
59
-
60
- #==============
61
- # profiles for locally hosted mobile web browsers (emulated locally in Chrome browser)
62
- #==============
63
-
64
- ipad_pro_11_local: --profile local WEB_BROWSER=ipad_pro_11 HOST_BROWSER=chrome --profile portrait <%= mobile %>
65
- ipad_pro_12_local: --profile local WEB_BROWSER=ipad_pro_12_9 HOST_BROWSER=chrome --profile portrait <%= mobile %>
66
- ipad_pro_12_grid: --profile grid WEB_BROWSER=ipad_pro_12_9 HOST_BROWSER=chrome --profile portrait <%= mobile %>
67
-
68
-
69
- #==============
70
- # profile to start Appium Server prior to running mobile browser tests on iOS or Android simulators or physical devices
71
- #==============
72
- run_appium: APPIUM_SERVER=run
73
-
74
-
75
- #==============
76
- # profiles for mobile Safari web browsers hosted within XCode iOS simulators
77
- # NOTE: Requires installation of XCode, iOS version specific target simulators, Appium, and the appium_capybara gem
78
- #==============
79
-
80
- appium_ios: WEB_BROWSER=appium AUTOMATION_ENGINE=XCUITest APP_PLATFORM_NAME="ios" APP_BROWSER="Safari" NEW_COMMAND_TIMEOUT=30 SHOW_SIM_KEYBOARD=false <%= mobile %>
81
- app_ios_15: --profile appium_ios APP_VERSION="15.4"
82
-
83
- ipad_pro_12_15_sim: --profile app_ios_15 DEVICE_TYPE=tablet APP_DEVICE="iPad Pro (12.9-inch) (5th generation)"
84
- ipad_air_15_sim: --profile app_ios_15 DEVICE_TYPE=tablet APP_DEVICE="iPad Air (5th generation)" <%= desktop %>
85
-
86
- ios_remote: --profile ipad_pro_12_15_sim --profile run_appium ORIENTATION=portrait TEST_ENVIRONMENT=REMOTE
87
-
88
-
89
- #==============
90
- # profiles for Android mobile web browsers hosted within Android Studio Android Virtual Device emulators
91
- # NOTE: Requires installation of Android Studio, Android version specific virtual device simulators, Appium, and the appium_capybara gem
92
- #==============
93
-
94
- appium_android: WEB_BROWSER=appium APP_PLATFORM_NAME="Android" <%= mobile %>
95
- app_android_12: --profile appium_android APP_BROWSER="Chrome" APP_VERSION="12.0"
96
- pixel_c_api31_sim: --profile app_android_12 DEVICE_TYPE=tablet APP_DEVICE="Pixel_C_API_31"
97
-
98
- android_remote: --profile pixel_c_api31_sim --profile run_appium ORIENTATION=portrait TEST_ENVIRONMENT=REMOTE
99
-
100
-
101
- #==============
102
- # profiles for remotely hosted web browsers on the BrowserStack service
103
- #==============
104
-
105
- browserstack: WEB_BROWSER=browserstack BS_USERNAME="<INSERT USER NAME HERE>" BS_AUTHKEY="<INSERT PASSWORD HERE>" AUTOMATE_PROJECT="TC_Web_Sample - BrowserStack"
106
- bs_desktop: --profile browserstack <%= desktop %> RESOLUTION="1920x1080"
107
- bs_mobile: --profile browserstack <%= mobile %>
108
-
109
- # BrowserStack macOS desktop browser profiles
110
- bs_macos_monterey: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="Monterey"
111
- bs_chrome_monterey: --profile bs_macos_monterey BS_BROWSER="Chrome" BS_VERSION="latest"
112
- bs_edge_monterey: --profile bs_macos_monterey BS_BROWSER="Edge" BS_VERSION="latest"
113
- bs_safari_monterey: --profile bs_macos_monterey BS_BROWSER="Safari" BS_VERSION="latest"
114
-
115
- # BrowserStack iOS mobile browser profiles
116
- bs_ipad: --profile bs_mobile BS_OS=ios BS_BROWSER=Safari DEVICE_TYPE=tablet BS_REAL_MOBILE="true"
117
- bs_ipad_pro_12: --profile bs_ipad BS_DEVICE="iPad Pro 12.9 2018" BS_OS_VERSION="15"
118
-
119
- # BrowserStack Android mobile browser profiles
120
- bs_android: --profile bs_mobile BS_OS=android BS_BROWSER=Chrome DEVICE_TYPE=tablet BS_REAL_MOBILE="true"
121
- bs_android_tablet: --profile bs_android BS_DEVICE="Samsung Galaxy Tab S7" BS_OS_VERSION="10.0"
122
-
123
-
124
- #==============
125
- # profiles for remotely hosted web browsers on the LambdaTest service
126
- #==============
127
-
128
- lambdatest: WEB_BROWSER=lambdatest LT_USERNAME="<INSERT USER NAME HERE>" LT_AUTHKEY="<INSERT PASSWORD HERE>" AUTOMATE_PROJECT="TC_Web_Sample - LambdaTest"
129
- lt_desktop: --profile lambdatest <%= desktop %> RESOLUTION="2560x1440"
130
-
131
- # LambdaTest macOS desktop browser profiles
132
- lt_macos_monterey: --profile lt_desktop LT_OS="MacOS Monterey"
133
- lt_chrome_monterey: --profile lt_macos_monterey LT_BROWSER="Chrome" LT_VERSION="98.0"
134
- lt_edge_monterey: --profile lt_macos_monterey LT_BROWSER="MicrosoftEdge" LT_VERSION="97.0"
135
-
136
-
137
- #==============
138
- # profiles for remotely hosted web browsers on the TestingBot service
139
- #==============
140
-
141
- testingbot: WEB_BROWSER=testingbot TB_USERNAME="<INSERT USER NAME HERE>" TB_AUTHKEY="<INSERT PASSWORD HERE>" AUTOMATE_PROJECT="TC_Web_Sample - TestingBot"
142
- tb_desktop: --profile testingbot <%= desktop %> RESOLUTION="1920x1200"
143
-
144
- # TestingBot macOS desktop browser profiles
145
- tb_macos_monterey: --profile tb_desktop TB_OS="MONTEREY"
146
- tb_chrome_monterey: --profile tb_macos_monterey TB_BROWSER="chrome" TB_VERSION="latest"
147
- tb_edge_monterey: --profile tb_macos_monterey TB_BROWSER="microsoftedge" TB_VERSION="latest"
148
-
149
-
150
- #==============
151
- # profiles for remotely hosted web browsers on the SauceLabs service
152
- #==============
153
-
154
- saucelabs: WEB_BROWSER=saucelabs SL_USERNAME="<INSERT USER NAME HERE>" SL_AUTHKEY="<INSERT PASSWORD HERE>" DATA_CENTER="us-west-1" AUTOMATE_PROJECT="TC_Web_Sample - SauceLabs"
155
- sl_desktop: --profile saucelabs <%= desktop %>
156
- sl_mobile: --profile saucelabs <%= mobile %>
157
-
158
- # SauceLabs macOS desktop browser profiles
159
- sl_macos_monterey: --profile sl_desktop SL_OS="macOS 12" RESOLUTION="1920x1440"
160
- sl_chrome_monterey: --profile sl_macos_monterey SL_BROWSER="chrome" SL_VERSION="latest"
161
- sl_edge_monterey: --profile sl_macos_monterey SL_BROWSER="MicrosoftEdge" SL_VERSION="latest"
162
- sl_firefox_monterey: --profile sl_macos_monterey SL_BROWSER="Firefox" SL_VERSION="latest"
163
-
164
- # SauceLabs Windows desktop browser profiles
165
- sl_windows: --profile sl_desktop RESOLUTION="1920x1200"
166
- sl_edge_win11: --profile sl_windows SL_OS="Windows 11" SL_BROWSER="MicrosoftEdge" SL_VERSION="latest"
167
- sl_ie_win10: --profile sl_windows SL_OS="Windows 10" SL_BROWSER="internet explorer" SL_VERSION="11"
168
-
169
- # SauceLabs iOS mobile browser profiles
170
- sl_ipad: --profile sl_mobile DEVICE_TYPE=tablet SL_PLATFORM=iOS SL_BROWSER=Safari
171
- sl_ipad_pro_12: --profile sl_ipad SL_DEVICE="iPad Pro (12.9 inch) (5th generation) Simulator" SL_VERSION="15.0"
@@ -1,56 +0,0 @@
1
- # Localization file for English/U.S. locale.
2
-
3
- en-US:
4
- time:
5
- formats:
6
- default: "%m/%d/%Y"
7
- long: "%B %d, %Y"
8
- short: "%b %d"
9
- abbrev: "%b %d, %Y"
10
- abbrev_month: "%b"
11
- month_year: "%B %Y"
12
- date:
13
- abbr_day_names:
14
- - Sun
15
- - Mon
16
- - Tue
17
- - Wed
18
- - Thu
19
- - Fri
20
- - Sat
21
- abbr_month_names:
22
- -
23
- - Jan
24
- - Feb
25
- - Mar
26
- - Apr
27
- - May
28
- - Jun
29
- - Jul
30
- - Aug
31
- - Sep
32
- - Oct
33
- - Nov
34
- - Dec
35
- day_names:
36
- - Sunday
37
- - Monday
38
- - Tuesday
39
- - Wednesday
40
- - Thursday
41
- - Friday
42
- - Saturday
43
- month_names:
44
- -
45
- - January
46
- - February
47
- - March
48
- - April
49
- - May
50
- - June
51
- - July
52
- - August
53
- - September
54
- - October
55
- - November
56
- - December
@@ -1,15 +0,0 @@
1
- {
2
- "Form_data": {
3
- "primary": {
4
- "username": "Thaddeus Eumbwebwe",
5
- "password": "Pa55w0rd",
6
- "image_filename": "Granny.jpg",
7
- "multi_select": "Selection Item 3",
8
- "drop_down_item": "Drop Down Item 3",
9
- "check1": false,
10
- "check2": true,
11
- "check3": true,
12
- "radio_select": 1
13
- }
14
- }
15
- }
Binary file
@@ -1,11 +0,0 @@
1
- Form_data:
2
- primary:
3
- username: "Ignatius von Snicklefritz"
4
- password: "T0p_Sekrit"
5
- image_filename: "Wilder.jpg"
6
- multi_select: "Selection Item 2"
7
- drop_down_item: "Drop Down Item 5"
8
- check1: true
9
- check2: true
10
- check3: false
11
- radio_select: 2
@@ -1,25 +0,0 @@
1
- {
2
- "Environments": {
3
- "LOCAL": {
4
- "PROTOCOL": "file",
5
- "BASE_URL": "/../../test_site"
6
- },
7
- "REMOTE": {
8
- "PROTOCOL": "http",
9
- "BASE_URL": "192.168.1.129/test_site"
10
- }
11
- },
12
- "Form_data": {
13
- "primary": {
14
- "username": "Thaddeus Eumbwebwe",
15
- "password": "Pa55w0rd",
16
- "image_filename": "Granny.jpg",
17
- "multi_select": "Selection Item 3",
18
- "drop_down_item": "Drop Down Item 3",
19
- "check1": false,
20
- "check2": true,
21
- "check3": true,
22
- "radio_select": 1
23
- }
24
- }
25
- }
Binary file
@@ -1,20 +0,0 @@
1
- # This section is populated with Environment data required to execute automated test suites on all supported environments
2
- Environments:
3
- LOCAL:
4
- PROTOCOL: "file"
5
- BASE_URL: "/../../test_site"
6
- REMOTE:
7
- PROTOCOL: "http"
8
- BASE_URL: "192.168.1.129/test_site"
9
-
10
- Form_data:
11
- primary:
12
- username: "Xavier Snicklefritz"
13
- password: "Pa55W0rd"
14
- image_filename: "Wilder.jpg"
15
- multi_select: "Selection Item 1"
16
- drop_down_item: "Drop Down Item 2"
17
- check1: true
18
- check2: true
19
- check3: true
20
- radio_select: 3
data/docker-compose.yml DELETED
@@ -1,48 +0,0 @@
1
- # To execute this docker-compose yml file use `docker-compose -f docker-compose.yml up`
2
- # Add the `-d` flag at the end for detached execution
3
- # To stop the execution, hit Ctrl+C, and then `docker-compose -f docker-compose.yml down`
4
- version: "3"
5
- services:
6
- chrome:
7
- image: selenium/node-chrome:4.1.2-20220217
8
- shm_size: 2gb
9
- depends_on:
10
- - selenium-hub
11
- environment:
12
- - SE_EVENT_BUS_HOST=selenium-hub
13
- - SE_EVENT_BUS_PUBLISH_PORT=4442
14
- - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
15
- - SE_NODE_MAX_SESSIONS=4
16
- - SE_NODE_OVERRIDE_MAX_SESSIONS=true
17
-
18
- edge:
19
- image: selenium/node-edge:4.1.2-20220217
20
- shm_size: 2gb
21
- depends_on:
22
- - selenium-hub
23
- environment:
24
- - SE_EVENT_BUS_HOST=selenium-hub
25
- - SE_EVENT_BUS_PUBLISH_PORT=4442
26
- - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
27
- - SE_NODE_MAX_SESSIONS=4
28
- - SE_NODE_OVERRIDE_MAX_SESSIONS=true
29
-
30
- firefox:
31
- image: selenium/node-firefox:4.1.2-20220217
32
- shm_size: 2gb
33
- depends_on:
34
- - selenium-hub
35
- environment:
36
- - SE_EVENT_BUS_HOST=selenium-hub
37
- - SE_EVENT_BUS_PUBLISH_PORT=4442
38
- - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
39
- - SE_NODE_MAX_SESSIONS=4
40
- - SE_NODE_OVERRIDE_MAX_SESSIONS=true
41
-
42
- selenium-hub:
43
- image: selenium/hub:4.1.2-20220217
44
- container_name: selenium-hub
45
- ports:
46
- - "4442:4442"
47
- - "4443:4443"
48
- - "4444:4444"
@@ -1,54 +0,0 @@
1
- Feature: Basic HTML Form Test Page using CSS locators
2
- In order to ensure comprehensive support for HTML UI elements and forms
3
- As a developer of the TestCentricity web gem
4
- I expect to validate the interaction and verification capabilities of typical HTML form UI elements
5
-
6
-
7
- Background:
8
- Given I am on the Basic CSS Form page
9
-
10
-
11
- Scenario: Validate verify_ui_states method and associated object state verification methods
12
- Then I expect the Basic CSS Form page to be correctly displayed
13
-
14
-
15
- @!mobile @!firefox_headless @!firefox_grid
16
- Scenario: Validate verify_focus_order method
17
- Then I expect the tab order to be correct
18
-
19
-
20
- Scenario: Validate populate_data_fields method and associated object action methods
21
- When I populate the form fields
22
- Then I expect the form fields to be correctly populated
23
- When I cancel my changes
24
- Then I expect the Basic CSS Form page to be correctly displayed
25
-
26
-
27
- Scenario Outline: Choose selectlist options by index, value, and text
28
- When I choose selectlist options by <method>
29
- Then I expect the selected option to be displayed
30
-
31
- Examples:
32
- |method |
33
- |index |
34
- |text |
35
-
36
- @!safari @!firefox @!firefox_headless
37
- Examples:
38
- |method |
39
- |value |
40
-
41
-
42
- Scenario Outline: Verify functionality of navigation tabs and browser back/forward
43
- When I click the <target_page> navigation tab
44
- Then I expect the <target_page> page to be correctly displayed
45
- When I navigate back
46
- Then I should be on the Basic CSS Form page
47
- When I navigate forward
48
- Then I should be on the <target_page> page
49
-
50
- Examples:
51
- |target_page |
52
- |Media Test |
53
- |Indexed Sections |
54
- |Custom Controls |
@@ -1,26 +0,0 @@
1
- @!grid @!mobile @!headless
2
-
3
-
4
- Feature: Basic HTML Form Test Page using Xpath locators
5
- In order to ensure comprehensive support for HTML UI elements and forms
6
- As a developer of the TestCentricity web gem
7
- I expect to validate the interaction and verification capabilities of typical HTML form UI elements
8
-
9
-
10
- Background:
11
- Given I am on the Basic Xpath Form page
12
-
13
-
14
- Scenario: Validate verify_ui_states method and associated object state verification methods
15
- Then I expect the Basic Xpath Form page to be correctly displayed
16
-
17
-
18
- Scenario: Validate verify_focus_order method
19
- Then I expect the tab order to be correct
20
-
21
-
22
- Scenario: Validate populate_data_fields method and associated object action methods
23
- When I populate the form fields
24
- Then I expect the form fields to be correctly populated
25
- When I cancel my changes
26
- Then I expect the Basic Xpath Form page to be correctly displayed
@@ -1,29 +0,0 @@
1
- Feature: Custom Controls
2
- In order to ensure comprehensive support for custom UI elements
3
- As a developer of the TestCentricity web gem
4
- I expect to validate the interaction and verification capabilities of custom UI elements
5
-
6
-
7
- Background:
8
- Given I am on the Custom Controls page
9
-
10
-
11
- Scenario: Validate populate_data_fields method and associated object action methods
12
- When I populate the form fields
13
- Then I expect the form fields to be correctly populated
14
-
15
-
16
- @!safari @!firefox @!firefox_headless @!ios
17
- Scenario: Use custom select list input field to choose options
18
- When I choose custom select options by typing
19
- Then I expect the form fields to be correctly populated
20
-
21
-
22
- Scenario Outline: Choose selectlist options by index and text
23
- When I choose selectlist options by <method>
24
- Then I expect the selected option to be displayed
25
-
26
- Examples:
27
- |method |
28
- |index |
29
- |text |
@@ -1,67 +0,0 @@
1
- @!grid @!mobile
2
-
3
-
4
- Feature: HTML5 Audio/Video Test Page using CSS locators
5
- In order to ensure comprehensive support for HTML5 Audio and Video media elements
6
- As a developer of the TestCentricity web gem
7
- I expect to validate the interaction and verification capabilities of media UI elements
8
-
9
-
10
- Background:
11
- Given I am on the Media Test page
12
-
13
-
14
- Scenario: Verify video player play and pause controls
15
- When I play the video media
16
- Then the video should be playing
17
- When I pause the video media
18
- Then the video should be paused
19
-
20
-
21
- Scenario: Verify audio player play and pause controls
22
- When I play the audio media
23
- Then the audio should be playing
24
- When I pause the audio media
25
- Then the audio should be paused
26
-
27
-
28
- Scenario: Verify video player mute control
29
- When I mute the video media
30
- Then the video should be muted
31
- When I unmute the video media
32
- Then the video should be unmuted
33
-
34
-
35
- Scenario: Verify audio player mute control
36
- When I mute the audio media
37
- Then the audio should be muted
38
- When I unmute the audio media
39
- Then the audio should be unmuted
40
-
41
-
42
- Scenario: Verify video player volume control
43
- When I set the volume of the video to .5
44
- Then the video should have a volume of .5
45
-
46
-
47
- Scenario: Verify audio player volume control
48
- When I set the volume of the audio to .5
49
- Then the audio should have a volume of .5
50
-
51
-
52
- Scenario: Verify video playback speed settings
53
- When I play the video with a playback speed of 2x
54
- Then the video should play at 2x speed
55
- When I play the video with a playback speed of 0.5x
56
- Then the video should play at 0.5x speed
57
- When I play the video with a playback speed of 1x
58
- Then the video should play at 1x speed
59
-
60
-
61
- Scenario: Verify audio playback speed settings
62
- When I play the audio with a playback speed of 2x
63
- Then the audio should play at 2x speed
64
- When I play the audio with a playback speed of 0.5x
65
- Then the audio should play at 0.5x speed
66
- When I play the audio with a playback speed of 1x
67
- Then the audio should play at 1x speed
@@ -1,124 +0,0 @@
1
- include TestCentricity
2
-
3
-
4
- Given(/^I am (?:on|viewing) the (.*) page$/) do |page_name|
5
- # find and load the specified target page
6
- target_page = PageManager.find_page(page_name)
7
- target_page.load_page
8
- end
9
-
10
-
11
- Then(/^I expect the (.*) page to be correctly displayed$/) do |page_name|
12
- # find and verify that the specified target page is loaded
13
- target_page = PageManager.find_page(page_name)
14
- target_page.verify_page_exists
15
- # verify that target page is correctly displayed
16
- target_page.verify_page_ui
17
- end
18
-
19
-
20
- When(/^I populate the form fields$/) do
21
- PageManager.current_page.populate_form
22
- end
23
-
24
-
25
- Then(/^I expect the form fields to be correctly populated$/) do
26
- PageManager.current_page.verify_form_data
27
- end
28
-
29
-
30
- When(/^I (.*) my changes$/) do | action|
31
- PageManager.current_page.perform_action(action.downcase.to_sym)
32
- end
33
-
34
-
35
- Then(/^I expect the tab order to be correct$/) do
36
- PageManager.current_page.verify_tab_order
37
- end
38
-
39
-
40
- When(/^I click the (.*) navigation (?:tab|link)$/) do |page_name|
41
- # find and navigate to the specified target page
42
- target_page = PageManager.find_page(page_name)
43
- target_page.navigate_to
44
- end
45
-
46
-
47
- Then(/^I should (?:see|be on) the (.*) page$/) do |page_name|
48
- # find and verify that the specified target page is loaded
49
- target_page = PageManager.find_page(page_name)
50
- target_page.verify_page_exists
51
- end
52
-
53
-
54
- Then(/^I expect the (.*) page to be correctly displayed in a new browser tab$/) do |page_name|
55
- Browsers.switch_to_new_browser_instance
56
- Environ.set_external_page(true)
57
- TestCentricity::WebDriverConnect.initialize_browser_size if Environ.headless
58
- # find and verify that the specified target page is loaded
59
- target_page = PageManager.find_page(page_name)
60
- target_page.verify_page_exists
61
- # verify that target page is correctly displayed
62
- target_page.verify_page_ui
63
- end
64
-
65
-
66
- When(/^I (?:access|switch to) the new browser tab$/) do
67
- Browsers.switch_to_new_browser_instance
68
- end
69
-
70
-
71
- When(/^I close the current browser window$/) do
72
- Browsers.close_current_browser_window
73
- # intercept and accept any JavaScript system or browser modals that may appear
74
- begin
75
- page.driver.browser.switch_to.alert.accept
76
- switch_to_new_browser_instance
77
- rescue
78
- end
79
- end
80
-
81
-
82
- When(/^I close the previous browser window$/) do
83
- Browsers.close_old_browser_instance
84
- end
85
-
86
-
87
- When(/^I refresh the current page$/) do
88
- Browsers.refresh_browser unless Environ.driver == :appium
89
- end
90
-
91
-
92
- When(/^I navigate back$/) do
93
- Browsers.navigate_back
94
- end
95
-
96
-
97
- When(/^I navigate forward$/) do
98
- Browsers.navigate_forward
99
- end
100
-
101
-
102
- When(/^I delete all cookies$/) do
103
- Browsers.delete_all_cookies
104
- end
105
-
106
-
107
- When(/^I set device orientation to (.*)$/) do |orientation|
108
- Browsers.set_device_orientation(orientation.downcase.to_sym)
109
- end
110
-
111
-
112
- When(/^I choose custom select options by typing$/) do
113
- custom_controls_page.set_select_options
114
- end
115
-
116
-
117
- When(/^I choose selectlist options by (.*)$/) do |method|
118
- PageManager.current_page.choose_options_by(method)
119
- end
120
-
121
-
122
- Then(/^I expect the selected option to be displayed$/) do
123
- PageManager.current_page.verify_chosen_options
124
- end
@@ -1,30 +0,0 @@
1
-
2
-
3
- When(/^I (.*) the (.*) media$/) do |action, media_type|
4
- media_test_page.perform_action(media_type, action)
5
- end
6
-
7
-
8
- Then(/^the (.*) should be (.*)$/) do |media_type, state|
9
- media_test_page.verify_media_state(media_type, state)
10
- end
11
-
12
-
13
- When(/^I play the (.*) with a playback speed of (.*)x$/) do |media_type, rate|
14
- media_test_page.set_playback_rate(media_type, rate)
15
- end
16
-
17
-
18
- Then(/^the (.*) should play at (.*)x speed$/) do |media_type, rate|
19
- media_test_page.verify_playback_rate(media_type, rate)
20
- end
21
-
22
-
23
- When(/^I set the volume of the (.*) to (.*)$/) do |media_type, volume|
24
- media_test_page.set_volume(media_type, volume)
25
- end
26
-
27
-
28
- Then(/^the (.*) should have a volume of (.*)$/) do |media_type, volume|
29
- media_test_page.verify_volume(media_type, volume)
30
- end