testcentricity_web 4.1.9 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
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