testcentricity_web 4.1.5 → 4.1.8

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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +18 -0
  3. data/.simplecov +9 -0
  4. data/CHANGELOG.md +44 -0
  5. data/Gemfile.lock +60 -2
  6. data/README.md +17 -7
  7. data/Rakefile +86 -1
  8. data/config/cucumber.yml +170 -0
  9. data/config/test_data/LOCAL_data.json +15 -0
  10. data/config/test_data/LOCAL_data.xls +0 -0
  11. data/config/test_data/LOCAL_data.yml +11 -0
  12. data/config/test_data/data.json +25 -0
  13. data/config/test_data/data.xls +0 -0
  14. data/config/test_data/data.yml +20 -0
  15. data/docker-compose-v3.yml +48 -0
  16. data/features/basic_form_page_css.feature +39 -0
  17. data/features/basic_form_page_xpath.feature +26 -0
  18. data/features/media_players.feature +84 -0
  19. data/features/step_definitions/generic_steps.rb.rb +109 -0
  20. data/features/step_definitions/media_steps.rb +30 -0
  21. data/features/support/data/form_data.rb +43 -0
  22. data/features/support/env.rb +50 -0
  23. data/features/support/hooks.rb +265 -0
  24. data/features/support/pages/base_test_page.rb +22 -0
  25. data/features/support/pages/basic_css_form_page.rb +52 -0
  26. data/features/support/pages/basic_form_page.rb +393 -0
  27. data/features/support/pages/basic_xpath_form_page.rb +53 -0
  28. data/features/support/pages/custom_controls_page.rb +13 -0
  29. data/features/support/pages/indexed_sections_page.rb +13 -0
  30. data/features/support/pages/media_test_page.rb +208 -0
  31. data/features/support/sections/header_nav.rb +39 -0
  32. data/features/support/world_data.rb +12 -0
  33. data/features/support/world_pages.rb +18 -0
  34. data/lib/testcentricity_web/appium_server.rb +5 -0
  35. data/lib/testcentricity_web/data_objects/data_objects_helper.rb +7 -0
  36. data/lib/testcentricity_web/data_objects/environment.rb +18 -0
  37. data/lib/testcentricity_web/data_objects/excel_helper.rb +60 -59
  38. data/lib/testcentricity_web/version.rb +1 -1
  39. data/lib/testcentricity_web/web_core/drag_drop_helper.rb +4 -0
  40. data/lib/testcentricity_web/web_core/page_object.rb +8 -8
  41. data/lib/testcentricity_web/web_core/page_objects_helper.rb +43 -8
  42. data/lib/testcentricity_web/web_core/page_section.rb +1 -16
  43. data/lib/testcentricity_web/web_core/webdriver_helper.rb +16 -0
  44. data/lib/testcentricity_web/web_elements/checkbox.rb +3 -4
  45. data/lib/testcentricity_web/web_elements/file_field.rb +9 -5
  46. data/lib/testcentricity_web/web_elements/image.rb +2 -1
  47. data/lib/testcentricity_web/web_elements/media.rb +45 -11
  48. data/lib/testcentricity_web/web_elements/radio.rb +5 -1
  49. data/lib/testcentricity_web/web_elements/select_list.rb +11 -3
  50. data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +33 -7
  51. data/lib/testcentricity_web/web_elements/video.rb +2 -2
  52. data/reports/.keep +1 -0
  53. data/test_site/basic_test_page.html +290 -0
  54. data/test_site/custom_controls_page.html +58 -0
  55. data/test_site/images/Granny.jpg +0 -0
  56. data/test_site/images/Wilder.jpg +0 -0
  57. data/test_site/images/You_Betcha.jpg +0 -0
  58. data/test_site/indexed_sections_page.html +58 -0
  59. data/test_site/media/MIB2-subtitles-pt-BR.vtt +49 -0
  60. data/test_site/media/MIB2.mp4 +0 -0
  61. data/test_site/media/MP4_small.mp4 +0 -0
  62. data/test_site/media/MPS_sample.mp3 +0 -0
  63. data/test_site/media/count_and_bars.mp4 +0 -0
  64. data/test_site/media_page.html +86 -0
  65. data/testcentricity_web.gemspec +5 -0
  66. metadata +131 -4
  67. data/test_site/test_page.html +0 -11
@@ -0,0 +1,290 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Basic HTML Form</title>
6
+ <style>
7
+ table {
8
+ font-family: arial, sans-serif;
9
+ font-size: 15px;
10
+ border-collapse: collapse;
11
+ width: 85%;
12
+ }
13
+ td, th {
14
+ border: 1px solid #dddddd;
15
+ text-align: left;
16
+ padding: 8px;
17
+ }
18
+ body {
19
+ margin: 0;
20
+ font-family: Arial, Helvetica, sans-serif;
21
+ }
22
+ .topnav {
23
+ overflow: hidden;
24
+ background-color: #333;
25
+ }
26
+ .topnav a {
27
+ float: left;
28
+ color: #f2f2f2;
29
+ text-align: center;
30
+ padding: 12px 14px;
31
+ text-decoration: none;
32
+ font-size: 15px;
33
+ }
34
+ .topnav a:hover {
35
+ background-color: #ddd;
36
+ color: black;
37
+ }
38
+ .topnav a.active {
39
+ background-color: #04AA6D;
40
+ color: white;
41
+ }
42
+ </style>
43
+ </head>
44
+ <body>
45
+ <div class="page-body">
46
+ <h2>Basic HTML Form</h2>
47
+
48
+ <div id="nav_bar" class="topnav">
49
+ <a id="form_link" class="active" href="#">Basic HTML Form</a>
50
+ <a id="media_link" href="media_page.html">Media</a>
51
+ <a id="indexed_sections_link" href="indexed_sections_page.html">Indexed Sections</a>
52
+ <a id="custom_controls_link" href="custom_controls_page.html">Custom Controls</a>
53
+ </div>
54
+
55
+
56
+ <div class="centered">
57
+ <form name="HTMLFormElements" id="HTMLFormElements">
58
+ <table border="1" cellpadding="5">
59
+ <tr>
60
+ <td>
61
+ <table>
62
+ <label id="inputs">Inputs:</label>
63
+ <tbody>
64
+ <tr>
65
+ <td>
66
+ <label for="username">Username:</label>
67
+ <input type="text" id="username" name="username" placeholder="User name" required>
68
+ </td>
69
+ <td>
70
+ <label for="password">Password:</label>
71
+ <input type="password" id="password" name="password" placeholder="Password" required>
72
+ </td>
73
+ <td>
74
+ <label for="maxlength">Max Length:</label>
75
+ <input type="text" id="maxlength" name="maxlength" placeholder="up to 64 characters" maxlength="64">
76
+ </td>
77
+ </tr>
78
+ <tr>
79
+ <td>
80
+ <label for="readonly">Read Only:</label>
81
+ <input type="text" id="readonly" name="readonly" value="I am a read only text field" readonly>
82
+ </td>
83
+ <td>
84
+ <label for="number-field">Number:</label>
85
+ <input id="number-field" type="number" name="number" min="10" max="1024" step="1" value="41">
86
+ </td>
87
+ <td>
88
+ <label for="color-picker">Color: </label>
89
+ <input id="color-picker" type="color" name="color">
90
+ </td>
91
+ </tr>
92
+ <tr>
93
+ <td>
94
+ <label for="slider">Range: </label>
95
+ <input id="slider" type="range" name="slider" min="0" max="50">
96
+ </td>
97
+ <td>
98
+ </td>
99
+ <td>
100
+ </td>
101
+ </tr>
102
+ </tbody>
103
+ </table>
104
+ </td>
105
+ </tr>
106
+
107
+
108
+ <tr>
109
+ <td>
110
+ <label for="comments">TextArea:</label>
111
+ <textarea id="comments" name="comments" cols="80" rows="3"></textarea>
112
+ </td>
113
+ </tr>
114
+
115
+ <tr>
116
+ <td>
117
+ <label for="filename">Filename:</label>
118
+ <input type="file" id="filename" name="filename" size="35">
119
+ </td>
120
+ </tr>
121
+
122
+ <tr>
123
+ <td>
124
+ <label id="checkboxes">Checkbox Items:</label>
125
+ <input type="checkbox" id="check1" name="checkboxes[]" value="cb1" />Checkbox 1
126
+ <input type="checkbox" id="check2" name="checkboxes[]" value="cb2" />Checkbox 2
127
+ <input type="checkbox" id="check3" name="checkboxes[]" value="cb3" />Checkbox 3
128
+ <input type="checkbox" id="check4" name="checkboxes[]" value="cb4" disabled/>Checkbox 4
129
+ </td>
130
+ </tr>
131
+
132
+ <tr>
133
+ <td>
134
+ <label id="radios">Radio Items:</label>
135
+ <input type="radio" id="radio1" name="radioval" value="rd1" />radio 1
136
+ <input type="radio" id="radio2" name="radioval" value="rd2" />radio 2
137
+ <input type="radio" id="radio3" name="radioval" value="rd3" />radio 3
138
+ <input type="radio" id="radio4" name="radioval" value="rd4" disabled/>radio 4
139
+ </td>
140
+ </tr>
141
+
142
+ <tr>
143
+ <td>
144
+ <label for="multipleselect">Multiple Select Values:</label>
145
+ <select multiple="multiple" id="multipleselect" name="multipleselect" size="4">
146
+ <option value="ms1">Selection Item 1</option>
147
+ <option value="ms2">Selection Item 2</option>
148
+ <option value="ms3">Selection Item 3</option>
149
+ <option value="ms4">Selection Item 4</option>
150
+ </select>
151
+ </td>
152
+ </tr>
153
+
154
+ <tr>
155
+ <td>
156
+ <label for="dropdown">Dropdown:</label>
157
+ <select id="dropdown" name="dropdown">
158
+ <option value="dd1">Drop Down Item 1</option>
159
+ <option value="dd2">Drop Down Item 2</option>
160
+ <option value="dd3">Drop Down Item 3</option>
161
+ <option value="dd4">Drop Down Item 4</option>
162
+ <option value="dd5">Drop Down Item 5</option>
163
+ <option value="dd6">Drop Down Item 6</option>
164
+ </select>
165
+ </td>
166
+ </tr>
167
+
168
+ <tr>
169
+ <td>
170
+ <label id="links">Links:</label>
171
+ <ul>
172
+ <li>
173
+ <a id="link1" href="media_page.html">Open Media Page in same window/tab</a>
174
+ </li>
175
+ <li>
176
+ <a id="link2" href="media_page.html" target="_blank">Open Media Page in a new window/tab</a>
177
+ </li>
178
+ <li>
179
+ <a id="link3" role="link" aria-disabled="true">Disabled Link</a>
180
+ </li>
181
+ </ul>
182
+ </td>
183
+ </tr>
184
+
185
+ <tr>
186
+ <td>
187
+ <label for="table">Table:</label>
188
+ <table id="table">
189
+ <thead>
190
+ <tr>
191
+ <th>Company</th>
192
+ <th>Contact</th>
193
+ <th>Country</th>
194
+ </tr>
195
+ </thead>
196
+ <tbody>
197
+ <tr>
198
+ <td>Alfreds Futterkiste</td>
199
+ <td>Maria Anders</td>
200
+ <td>Germany</td>
201
+ </tr>
202
+ <tr>
203
+ <td>Centro comercial Moctezuma</td>
204
+ <td>Francisco Chang</td>
205
+ <td>Mexico</td>
206
+ </tr>
207
+ <tr>
208
+ <td>Ernst Handel</td>
209
+ <td>Roland Mendel</td>
210
+ <td>Austria</td>
211
+ </tr>
212
+ <tr>
213
+ <td>Island Trading</td>
214
+ <td>Helen Bennett</td>
215
+ <td>UK</td>
216
+ </tr>
217
+ </tbody>
218
+ </table>
219
+ </td>
220
+ </tr>
221
+
222
+ <tr>
223
+ <td>
224
+ <table>
225
+ <label id="images">Images:</label>
226
+ <tbody>
227
+ <tr>
228
+ <td>
229
+ <img id="image1" src="images/Wilder.jpg" alt="It's alive" style="width:225px;height:225px;">
230
+ </td>
231
+ <td>
232
+ <img id="image2" src="images/You_Betcha.jpg" alt="You Betcha" style="width:225px;height:225px;">
233
+ </td>
234
+ <td>
235
+ <img id="image3" src="wrongname.gif" alt="A broken image" style="width:225px;height:225px;">
236
+ </td>
237
+ </tr>
238
+ </tbody>
239
+ </table>
240
+ </td>
241
+ </tr>
242
+
243
+
244
+
245
+ <!-- <tr>-->
246
+ <!-- <td>-->
247
+ <!-- <div class="form-label">-->
248
+ <!-- <label for="date-picker">Date: </label>-->
249
+ <!-- <input id="date-picker" type="date" name="date">-->
250
+ <!-- </div>-->
251
+ <!-- </td>-->
252
+ <!-- </tr>-->
253
+ <!-- <tr>-->
254
+ <!-- <td>-->
255
+ <!-- <div class="form-label">-->
256
+ <!-- <label for="date-time-picker">Local date time:</label>-->
257
+ <!-- <input id="date-time-picker" type="datetime-local" name="datetime" value="2018-01-01T01:01">-->
258
+ <!-- </div>-->
259
+ <!-- </td>-->
260
+ <!-- </tr>-->
261
+ <!-- <tr>-->
262
+ <!-- <td>-->
263
+ <!-- <div class="form-label">-->
264
+ <!-- <label for="email-field">Email: </label>-->
265
+ <!-- <input id="email-field" type="email" name="email" value="bob@mailinator.com">-->
266
+ <!-- </div>-->
267
+ <!-- </td>-->
268
+ <!-- </tr>-->
269
+ <!-- <tr>-->
270
+ <!-- <td>-->
271
+ <!-- <div class="form-label">-->
272
+ <!-- <label for="month-field">Month: </label>-->
273
+ <!-- <input id="month-field" type="month" name="month">-->
274
+ <!-- </div>-->
275
+ <!-- </td>-->
276
+ <!-- </tr>-->
277
+
278
+
279
+ <tr>
280
+ <td>
281
+ <input type="reset" id="cancel" name="cancel" value="Cancel" class="styled-click-button">
282
+ <input type="submit" id="submit" name="submit" value="Submit" class="styled-click-button">
283
+ </td>
284
+ </tr>
285
+ </table>
286
+ </form>
287
+ </div>
288
+ </div>
289
+ </body>
290
+ </html>
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Custom Controls Page</title>
6
+ <style>
7
+ table {
8
+ font-family: arial, sans-serif;
9
+ font-size: 15px;
10
+ border-collapse: collapse;
11
+ width: 85%;
12
+ }
13
+ td, th {
14
+ border: 1px solid #dddddd;
15
+ text-align: left;
16
+ padding: 8px;
17
+ }
18
+ body {
19
+ margin: 0;
20
+ font-family: Arial, Helvetica, sans-serif;
21
+ }
22
+ .topnav {
23
+ overflow: hidden;
24
+ background-color: #333;
25
+ }
26
+ .topnav a {
27
+ float: left;
28
+ color: #f2f2f2;
29
+ text-align: center;
30
+ padding: 12px 14px;
31
+ text-decoration: none;
32
+ font-size: 15px;
33
+ }
34
+ .topnav a:hover {
35
+ background-color: #ddd;
36
+ color: black;
37
+ }
38
+ .topnav a.active {
39
+ background-color: #04AA6D;
40
+ color: white;
41
+ }
42
+ </style>
43
+ </head>
44
+ <body>
45
+ <div class="custom-controls-page-body">
46
+ <h2>Custom Controls Page</h2>
47
+
48
+ <div id="nav_bar" class="topnav">
49
+ <a id="form_link" href="basic_test_page.html">Basic HTML Form</a>
50
+ <a id="media_link" href="media_page.html">Media</a>
51
+ <a id="indexed_sections_link" href="indexed_sections_page.html">Indexed Sections</a>
52
+ <a id="custom_controls_link" class="active" href="#">Custom Controls</a>
53
+ </div>
54
+
55
+
56
+ </div>
57
+ </body>
58
+ </html>
Binary file
Binary file
Binary file
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Indexed Sections Page</title>
6
+ <style>
7
+ table {
8
+ font-family: arial, sans-serif;
9
+ font-size: 15px;
10
+ border-collapse: collapse;
11
+ width: 85%;
12
+ }
13
+ td, th {
14
+ border: 1px solid #dddddd;
15
+ text-align: left;
16
+ padding: 8px;
17
+ }
18
+ body {
19
+ margin: 0;
20
+ font-family: Arial, Helvetica, sans-serif;
21
+ }
22
+ .topnav {
23
+ overflow: hidden;
24
+ background-color: #333;
25
+ }
26
+ .topnav a {
27
+ float: left;
28
+ color: #f2f2f2;
29
+ text-align: center;
30
+ padding: 12px 14px;
31
+ text-decoration: none;
32
+ font-size: 15px;
33
+ }
34
+ .topnav a:hover {
35
+ background-color: #ddd;
36
+ color: black;
37
+ }
38
+ .topnav a.active {
39
+ background-color: #04AA6D;
40
+ color: white;
41
+ }
42
+ </style>
43
+ </head>
44
+ <body>
45
+ <div class="indexed-sections-page-body">
46
+ <h2>Indexed Sections Page</h2>
47
+
48
+ <div id="nav_bar" class="topnav">
49
+ <a id="form_link" href="basic_test_page.html">Basic HTML Form</a>
50
+ <a id="media_link" href="media_page.html">Media</a>
51
+ <a id="indexed_sections_link" class="active" href="#">Indexed Sections</a>
52
+ <a id="custom_controls_link" href="custom_controls_page.html">Custom Controls</a>
53
+ </div>
54
+
55
+
56
+ </div>
57
+ </body>
58
+ </html>
@@ -0,0 +1,49 @@
1
+ WEBVTT
2
+
3
+ 1
4
+ 00:00:00.000 --> 00:00:02.500
5
+ Aprendi a me virar e você voltou
6
+
7
+ 2
8
+ 00:00:02.500 --> 00:00:05.000
9
+ do espaço sideral
10
+
11
+ 3
12
+ 00:00:05.100 --> 00:00:10.500
13
+ e agora vejo que você está aqui no baixo astral
14
+
15
+ 4
16
+ 00:00:10.600 --> 00:00:14.000
17
+ eu devia me mudar e ter tomado a sua chave
18
+
19
+ 5
20
+ 00:00:14.100 --> 00:00:17.500
21
+ se soubesse que ia voltar para mim enfernizar
22
+
23
+ 6
24
+ 00:00:17.600 --> 00:00:19.500
25
+ agora vai, sai daqui
26
+
27
+ 7
28
+ 00:00:19.600 --> 00:00:21.500
29
+ Frank!
30
+
31
+ 8
32
+ 00:00:21.600 --> 00:00:24.100
33
+ ponha a cabeça para dentro
34
+
35
+ 9
36
+ 00:00:24.200 --> 00:00:26.500
37
+ antes que eu emprense nessa janela
38
+
39
+ 10
40
+ 00:00:26.600 --> 00:00:29.500
41
+ tá legal
42
+
43
+ 11
44
+ 00:00:29.600 --> 00:00:33.500
45
+ hhmm... hhmmm... hmmm...
46
+
47
+ 12
48
+ 00:00:33.600 --> 00:00:34.000
49
+ FRANK!!!
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,86 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Media Page</title>
6
+ <style>
7
+ table {
8
+ font-family: arial, sans-serif;
9
+ font-size: 15px;
10
+ border-collapse: collapse;
11
+ width: 85%;
12
+ }
13
+ td, th {
14
+ border: 1px solid #dddddd;
15
+ text-align: left;
16
+ padding: 8px;
17
+ }
18
+ body {
19
+ margin: 0;
20
+ font-family: Arial, Helvetica, sans-serif;
21
+ }
22
+ .topnav {
23
+ overflow: hidden;
24
+ background-color: #333;
25
+ }
26
+ .topnav a {
27
+ float: left;
28
+ color: #f2f2f2;
29
+ text-align: center;
30
+ padding: 12px 14px;
31
+ text-decoration: none;
32
+ font-size: 15px;
33
+ }
34
+ .topnav a:hover {
35
+ background-color: #ddd;
36
+ color: black;
37
+ }
38
+ .topnav a.active {
39
+ background-color: #04AA6D;
40
+ color: white;
41
+ }
42
+ </style>
43
+ </head>
44
+ <body>
45
+ <div class="media-page-body">
46
+ <h2>Media Page</h2>
47
+
48
+ <div id="nav_bar" class="topnav">
49
+ <a id="form_link" href="basic_test_page.html">Basic HTML Form</a>
50
+ <a id="media_link" class="active" href="#">Media</a>
51
+ <a id="indexed_sections_link" href="indexed_sections_page.html">Indexed Sections</a>
52
+ <a id="custom_controls_link" href="custom_controls_page.html">Custom Controls</a>
53
+ </div>
54
+
55
+ <table>
56
+ <tbody>
57
+ <tr>
58
+ <td>
59
+ <label id="video1">Video:</label>
60
+ <video id="video_player1" width="480" height="360" controls>
61
+ <source src="media/count_and_bars.mp4" type="video/mp4">
62
+ </video>
63
+ </td>
64
+ </tr>
65
+ <tr>
66
+ <td>
67
+ <label id="audio">Audio:</label>
68
+ <audio id="audio_player" controls>
69
+ <source src="media/MPS_sample.mp3" type="audio/mp3">
70
+ </audio>
71
+ </td>
72
+ </tr>
73
+ <tr>
74
+ <td>
75
+ <label id="video2">Video with Captions:</label>
76
+ <video id="video_player2" width="400" controls>
77
+ <source src="media/MIB2.mp4" type="video/mp4">
78
+ <track src="media/MIB2-subtitles-pt-BR.vtt" kind="subtitles" srclang="pt" label="Portuguese" default>
79
+ </video>
80
+ </td>
81
+ </tr>
82
+ </tbody>
83
+ </table>
84
+ </div>
85
+ </body>
86
+ </html>
@@ -29,6 +29,11 @@ Gem::Specification.new do |spec|
29
29
 
30
30
  spec.add_development_dependency 'bundler'
31
31
  spec.add_development_dependency 'rake'
32
+ spec.add_development_dependency 'cucumber'
33
+ spec.add_development_dependency 'appium_capybara'
34
+ spec.add_development_dependency 'parallel_tests'
35
+ spec.add_development_dependency 'require_all'
36
+ spec.add_development_dependency 'simplecov', ['~> 0.18']
32
37
 
33
38
  spec.add_runtime_dependency 'appium_lib'
34
39
  spec.add_runtime_dependency 'browserstack-local'