testcentricity_web 4.1.5 → 4.1.8

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