testcentricity_web 4.1.6 → 4.1.9

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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rspec +2 -1
  4. data/.ruby-version +1 -0
  5. data/.simplecov +5 -1
  6. data/CHANGELOG.md +43 -0
  7. data/README.md +14 -13
  8. data/Rakefile +99 -21
  9. data/config/cucumber.yml +32 -11
  10. data/config/locales/en-US.yml +56 -0
  11. data/config/test_data/LOCAL_data.json +15 -0
  12. data/config/test_data/LOCAL_data.xls +0 -0
  13. data/config/test_data/LOCAL_data.yml +11 -0
  14. data/config/test_data/data.json +25 -0
  15. data/config/test_data/data.xls +0 -0
  16. data/config/test_data/data.yml +20 -0
  17. data/{docker-compose-v3.yml → docker-compose.yml} +2 -2
  18. data/features/basic_form_page_css.feature +54 -0
  19. data/features/basic_form_page_xpath.feature +26 -0
  20. data/features/custom_controls.feature +29 -0
  21. data/features/media_players.feature +67 -0
  22. data/features/step_definitions/generic_steps.rb.rb +87 -0
  23. data/features/step_definitions/media_steps.rb +30 -0
  24. data/features/support/data/form_data.rb +43 -0
  25. data/features/support/env.rb +18 -10
  26. data/features/support/hooks.rb +26 -1
  27. data/features/support/pages/base_test_page.rb +22 -0
  28. data/features/support/pages/{basic_css_test_page.rb → basic_css_form_page.rb} +12 -8
  29. data/features/support/pages/{basic_test_page.rb → basic_form_page.rb} +227 -36
  30. data/features/support/pages/{basic_xpath_test_page.rb → basic_xpath_form_page.rb} +12 -7
  31. data/features/support/pages/custom_controls_page.rb +263 -0
  32. data/features/support/pages/indexed_sections_page.rb +57 -0
  33. data/features/support/pages/media_test_page.rb +207 -0
  34. data/features/support/sections/header_nav.rb +48 -0
  35. data/features/support/sections/product_card.rb +39 -0
  36. data/features/support/world_data.rb +12 -0
  37. data/features/support/world_pages.rb +5 -2
  38. data/lib/testcentricity_web/appium_server.rb +5 -0
  39. data/lib/testcentricity_web/browser_helper.rb +0 -6
  40. data/lib/testcentricity_web/data_objects/data_objects_helper.rb +7 -0
  41. data/lib/testcentricity_web/data_objects/environment.rb +14 -0
  42. data/lib/testcentricity_web/data_objects/excel_helper.rb +60 -59
  43. data/lib/testcentricity_web/version.rb +1 -1
  44. data/lib/testcentricity_web/web_core/drag_drop_helper.rb +4 -0
  45. data/lib/testcentricity_web/web_core/page_object.rb +1 -8
  46. data/lib/testcentricity_web/web_core/page_objects_helper.rb +4 -2
  47. data/lib/testcentricity_web/web_core/page_section.rb +1 -1
  48. data/lib/testcentricity_web/web_core/webdriver_helper.rb +60 -44
  49. data/lib/testcentricity_web/web_elements/checkbox.rb +49 -19
  50. data/lib/testcentricity_web/web_elements/file_field.rb +9 -5
  51. data/lib/testcentricity_web/web_elements/image.rb +2 -1
  52. data/lib/testcentricity_web/web_elements/media.rb +46 -12
  53. data/lib/testcentricity_web/web_elements/radio.rb +51 -16
  54. data/lib/testcentricity_web/web_elements/select_list.rb +12 -12
  55. data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +22 -9
  56. data/lib/testcentricity_web/web_elements/video.rb +2 -2
  57. data/spec/fixtures/page_object.rb +22 -0
  58. data/spec/fixtures/section_object.rb +21 -0
  59. data/spec/spec_helper.rb +31 -0
  60. data/spec/testcentricity_web/browser_spec.rb +41 -0
  61. data/spec/testcentricity_web/elements/audio_spec.rb +68 -0
  62. data/spec/testcentricity_web/elements/button_spec.rb +18 -0
  63. data/spec/testcentricity_web/elements/checkbox_spec.rb +33 -0
  64. data/spec/testcentricity_web/elements/file_field_spec.rb +13 -0
  65. data/spec/testcentricity_web/elements/image_spec.rb +33 -0
  66. data/spec/testcentricity_web/elements/label_spec.rb +18 -0
  67. data/spec/testcentricity_web/elements/link_spec.rb +23 -0
  68. data/spec/testcentricity_web/elements/list_spec.rb +13 -0
  69. data/spec/testcentricity_web/elements/radio_spec.rb +28 -0
  70. data/spec/testcentricity_web/elements/ui_element_spec.rb +125 -0
  71. data/spec/testcentricity_web/elements/video_spec.rb +68 -0
  72. data/spec/testcentricity_web/helper_specs/object_helpers_spec.rb +39 -0
  73. data/spec/testcentricity_web/helper_specs/string_helpers_spec.rb +49 -0
  74. data/spec/testcentricity_web/page_object_spec.rb +90 -0
  75. data/spec/testcentricity_web/section_object_spec.rb +72 -0
  76. data/spec/testcentricity_web/version_spec.rb +7 -0
  77. data/spec/testcentricity_web/webdriver_connect/grid_webdriver_spec.rb +72 -0
  78. data/spec/testcentricity_web/webdriver_connect/local_webdriver_spec.rb +86 -0
  79. data/spec/testcentricity_web/webdriver_connect/mobile_webdriver_spec.rb +65 -0
  80. data/test_site/basic_test_page.html +51 -1
  81. data/test_site/chosen-sprite.png +0 -0
  82. data/test_site/chosen-sprite@2x.png +0 -0
  83. data/test_site/chosen.css +496 -0
  84. data/test_site/chosen.jquery.js +1359 -0
  85. data/test_site/chosen.jquery.min.js +3 -0
  86. data/test_site/chosen.min.css +11 -0
  87. data/test_site/chosen.proto.js +1399 -0
  88. data/test_site/chosen.proto.min.js +3 -0
  89. data/test_site/composer.json +36 -0
  90. data/test_site/custom_controls_page.html +629 -0
  91. data/test_site/docsupport/chosen.png +0 -0
  92. data/test_site/docsupport/init.js +11 -0
  93. data/test_site/docsupport/init.proto.js +16 -0
  94. data/test_site/docsupport/jquery-1.12.4.min.js +5 -0
  95. data/test_site/docsupport/jquery-3.2.1.min.js +4 -0
  96. data/test_site/docsupport/oss-credit.png +0 -0
  97. data/test_site/docsupport/prism.css +108 -0
  98. data/test_site/docsupport/prism.js +9 -0
  99. data/test_site/docsupport/prototype-1.7.0.0.js +6082 -0
  100. data/test_site/docsupport/style.css +219 -0
  101. data/test_site/images/Blouse_Black.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/jeans3.jpg +0 -0
  105. data/test_site/indexed_sections_page.html +215 -0
  106. data/test_site/media/MIB2-subtitles-pt-BR.vtt +49 -0
  107. data/test_site/media/MIB2.mp4 +0 -0
  108. data/test_site/media/bbc_scotland_report.mp3 +0 -0
  109. data/test_site/media/count_and_bars.mp4 +0 -0
  110. data/test_site/media_page.html +60 -7
  111. data/testcentricity_web.gemspec +14 -8
  112. metadata +197 -25
  113. data/Gemfile.lock +0 -170
  114. data/features/basic_test_page_css.feature +0 -24
  115. data/features/basic_test_page_xpath.feature +0 -24
  116. data/features/support/pages/media_page.rb +0 -11
@@ -0,0 +1,219 @@
1
+ /* Reset */
2
+ html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }
3
+
4
+ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
5
+
6
+ blockquote, q { quotes: none; }
7
+ blockquote:before, blockquote:after, q:before, q:after { content: ""; content: none; }
8
+ ins { background-color: #ff9; color: #000; text-decoration: none; }
9
+ mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
10
+ del { text-decoration: line-through; }
11
+ abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
12
+ table { border-collapse: collapse; border-spacing: 0; }
13
+ hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
14
+ input, select { vertical-align: middle; }
15
+
16
+ body { font:13px/1.231 sans-serif; *font-size:small; } /* Hack retained to preserve specificity */
17
+ select, input, textarea, button { font:99% sans-serif; }
18
+ pre, code, kbd, samp { font-family: monospace, sans-serif; }
19
+
20
+
21
+ body { background: #EEE; color: #444; line-height: 1.4em; }
22
+
23
+ header h1 { color: black; font-size: 2em; line-height: 1.1em; display: inline-block; height: 27px; margin: 20px 0 25px; }
24
+ header h1 small { font-size: 0.6em; }
25
+
26
+ div#content { background: white; border: 1px solid #ccc; border-width: 0 1px 1px; margin: 0 auto; padding: 40px 50px 40px; width: 738px; }
27
+
28
+ footer { color: #999; padding-top: 40px; font-size: 0.8em; text-align: center; }
29
+
30
+ body { font-family: sans-serif; font-size: 1em; }
31
+
32
+ p { margin: 0 0 .7em; max-width: 700px; }
33
+ table+p { margin-top: 1em; }
34
+
35
+ h2 { border-bottom: 1px solid #ccc; font-size: 1.2em; margin: 3em 0 1em 0; font-weight: bold;}
36
+ h3 { font-weight: bold; }
37
+
38
+ h2.intro { border-bottom: none; font-size: 1em; font-weight: normal; margin-top:0; }
39
+
40
+ ul li { list-style: disc; margin-left: 1em; margin-bottom: 1.25em; }
41
+ ol li { margin-left: 1.25em; }
42
+ ol ul, ul ul { margin: .25em 0 0; }
43
+ ol ul li, ul ul li { list-style-type: circle; margin: 0 0 .25em 1em; }
44
+
45
+ li > p { margin-top: .25em; }
46
+
47
+ div.side-by-side { width: 100%; margin-bottom: 1em; }
48
+ div.side-by-side > div { float: left; width: 49%; }
49
+ div.side-by-side > div > em { margin-bottom: 10px; display: block; }
50
+
51
+ .faqs em { display: block; }
52
+
53
+ .clearfix:after {
54
+ content: "\0020";
55
+ display: block;
56
+ height: 0;
57
+ clear: both;
58
+ overflow: hidden;
59
+ visibility: hidden;
60
+ }
61
+
62
+ a { color: #F36C00; outline: none; text-decoration: none; }
63
+ a:hover { text-decoration: underline; }
64
+
65
+ ul.credits li { margin-bottom: .25em; }
66
+
67
+ strong { font-weight: bold; }
68
+ i { font-style: italic; }
69
+
70
+ .button {
71
+ background: #fafafa;
72
+ background: -webkit-linear-gradient(top, #ffffff, #eeeeee);
73
+ background: -moz-linear-gradient(top, #ffffff, #eeeeee);
74
+ background: -o-linear-gradient(top, #ffffff, #eeeeee);
75
+ background: linear-gradient(to bottom, #ffffff, #eeeeee);
76
+ border: 1px solid #bbbbbb;
77
+ border-radius: 4px;
78
+ box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.2);
79
+ color: #555555;
80
+ cursor: pointer;
81
+ display: inline-block;
82
+ font-family: "Helvetica Neue", Arial, Verdana, "Nimbus Sans L", sans-serif;
83
+ font-size: 13px;
84
+ font-weight: 500;
85
+ height: 31px;
86
+ line-height: 28px;
87
+ outline: none;
88
+ padding: 0 13px;
89
+ text-shadow: 0 1px 0 white;
90
+ text-decoration: none;
91
+ vertical-align: middle;
92
+ white-space: nowrap;
93
+ -webkit-font-smoothing: antialiased;
94
+ -webkit-box-sizing: border-box;
95
+ -moz-box-sizing: border-box;
96
+ box-sizing: border-box;
97
+ }
98
+
99
+ .button-blue {
100
+ background: #1385e5;
101
+ background: -webkit-linear-gradient(top, #53b2fc, #1385e5);
102
+ background: -moz-linear-gradient(top, #53b2fc, #1385e5);
103
+ background: -o-linear-gradient(top, #53b2fc, #1385e5);
104
+ background: linear-gradient(to bottom, #53b2fc, #1385e5);
105
+ border-color: #075fa9;
106
+ color: white;
107
+ font-weight: bold;
108
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);
109
+ }
110
+
111
+
112
+ /* Tweak navbar brand link to be super sleek
113
+ -------------------------------------------------- */
114
+ .oss-bar {
115
+ top: 0;
116
+ right: 20px;
117
+ position: fixed;
118
+ z-index: 1030;
119
+ }
120
+ .oss-bar ul {
121
+ float: right;
122
+ margin: 0;
123
+ list-style: none;
124
+ }
125
+ .oss-bar ul li {
126
+ list-style: none;
127
+ float: left;
128
+ line-height: 0;
129
+ margin: 0;
130
+ }
131
+ .oss-bar ul li a {
132
+ -moz-box-sizing: border-box;
133
+ -webkit-box-sizing: border-box;
134
+ -ms-box-sizing: border-box;
135
+ box-sizing: border-box;
136
+ border: 0;
137
+ margin-top: -10px;
138
+ display: block;
139
+ height: 58px;
140
+ background: #F36C00 url(oss-credit.png) no-repeat 20px 22px;
141
+ padding: 22px 20px 12px 20px;
142
+ text-indent: 120%; /* stupid padding */
143
+ white-space: nowrap;
144
+ overflow: hidden;
145
+ -webkit-transition: all 0.10s ease-in-out;
146
+ -moz-transition: all 0.10s ease-in-out;
147
+ transition: all 0.15s ease-in-out;
148
+ }
149
+ .oss-bar ul li a:hover {
150
+ margin-top: 0px;
151
+ }
152
+ .oss-bar a.harvest {
153
+ width: 196px;
154
+ background-color: #F36C00;
155
+ background-position: -142px 22px;
156
+ padding-right: 22px; /* optical illusion */
157
+ }
158
+ .oss-bar a.fork {
159
+ width: 162px;
160
+ background-color: #333333;
161
+ }
162
+
163
+ .docs-table th, .docs-table td {
164
+ border: 1px solid #000;
165
+ padding: 4px 6px;
166
+ white-space: nowrap;
167
+ }
168
+
169
+ .docs-table td:last-child {
170
+ white-space: normal;
171
+ }
172
+
173
+ .docs-table th {
174
+ font-weight: bold;
175
+ text-align: left;
176
+ }
177
+
178
+ #content pre[class*=language-] {
179
+ font-size: 14px;
180
+ margin-bottom: 20px;
181
+ }
182
+
183
+ #content pre[class*=language-] code {
184
+ font-size: 14px;
185
+ padding: 0;
186
+ }
187
+
188
+ #content code[class*=language-] {
189
+ font-size: 12px;
190
+ padding: 2px 4px;
191
+ }
192
+
193
+ .anchor {
194
+ color: inherit;
195
+ position: relative;
196
+ }
197
+
198
+ .anchor:hover {
199
+ background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSI3Ij48ZyBmaWxsPSIjNDE0MDQyIj48cGF0aCBkPSJNOS44IDdoLS45bC0uOS0uMWMtLjctLjMtMS40LS43LTEuOC0xLjMtLjItLjEtLjMtLjMtLjMtLjVsLS4zLS40Yy0uMS0uNC0uMi0uOC0uMi0xLjIgMC0uNC4xLS44LjItMS4yaDEuN2MtLjMuNC0uNC44LS40IDEuMiAwIC40LjEuOC4zIDEuMS4xLjIuMi4zLjQuNC4xLjEuMi4yLjQuMy4zLjIuNy4zIDEgLjNoMy40YzEuMiAwIDIuMi0uOSAyLjItMi4xcy0xLTIuMS0yLjItMi4xaC0xLjRjLS4zLS42LS43LTEtMS4yLTEuNGgyLjZjMiAwIDMuNiAxLjYgMy42IDMuNXMtMS42IDMuNS0zLjYgMy41aC0yLjZ6TTguNCAyYy0uMS0uMS0uMi0uMy0uNC0uMy0uMy0uMi0uNy0uMy0xLS4zaC0zLjRjLTEuMiAwLTIuMi45LTIuMiAyLjEgMCAxLjIgMSAyLjEgMi4yIDIuMWgxLjRjLjMuNS43IDEgMS4yIDEuNGgtMi42Yy0yIDAtMy42LTEuNi0zLjYtMy41czEuNi0zLjUgMy42LTMuNWgzLjUwMDAwMDAwMDAwMDAwMDRsLjkuMWMuNy4yIDEuNC43IDEuOCAxLjMuMS4xLjIuMy4zLjUuMS4xLjIuMy4yLjUuMS40LjIuOC4yIDEuMiAwIC40LS4xLjgtLjIgMS4yaC0xLjZjLjMtLjUuNC0uOS40LTEuM3MtLjEtLjgtLjMtMS4xYy0uMS0uMi0uMi0uMy0uNC0uNHoiLz48L2c+PC9zdmc+) 0 50% no-repeat;
200
+ background-size: 21px 9px;
201
+ margin-left: -27px;
202
+ padding-left: 27px;
203
+ text-decoration: none;
204
+ }
205
+
206
+ .select,
207
+ .chosen-select,
208
+ .chosen-select-no-single,
209
+ .chosen-select-no-results,
210
+ .chosen-select-deselect,
211
+ .chosen-select-rtl,
212
+ .chosen-select-width {
213
+ width: 350px;
214
+ }
215
+
216
+ .jquery-version-refer {
217
+ margin-top: 40px;
218
+ font-style: italic;
219
+ }
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,215 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Indexed Sections Page</title>
6
+
7
+ <!-- Font Awesome Icon Library -->
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
9
+ <style>
10
+ table {
11
+ font-family: arial, sans-serif;
12
+ font-size: 15px;
13
+ border-collapse: collapse;
14
+ width: 85%;
15
+ }
16
+ td, th {
17
+ border: 1px solid #dddddd;
18
+ text-align: left;
19
+ padding: 8px;
20
+ }
21
+ body {
22
+ margin: 0;
23
+ font-family: Arial, Helvetica, sans-serif;
24
+ }
25
+ .topnav {
26
+ overflow: hidden;
27
+ background-color: #333;
28
+ }
29
+ .topnav a {
30
+ float: left;
31
+ color: #f2f2f2;
32
+ text-align: center;
33
+ padding: 12px 14px;
34
+ text-decoration: none;
35
+ font-size: 15px;
36
+ }
37
+ .topnav a:hover {
38
+ background-color: #ddd;
39
+ color: black;
40
+ }
41
+ .topnav a.active {
42
+ background-color: #04AA6D;
43
+ color: white;
44
+ }
45
+
46
+
47
+ /* Float four columns side by side */
48
+ .column {
49
+ float: left;
50
+ width: 20%;
51
+ padding: 0 10px;
52
+ }
53
+ /* Remove extra left and right margins, due to padding */
54
+ .row {margin: 0 -5px;}
55
+ /* Clear floats after the columns */
56
+ .row:after {
57
+ content: "";
58
+ display: table;
59
+ clear: both;
60
+ }
61
+ /* Responsive columns */
62
+ @media screen and (max-width: 600px) {
63
+ .column {
64
+ width: 100%;
65
+ display: block;
66
+ margin-bottom: 20px;
67
+ }
68
+ }
69
+
70
+ .card {
71
+ box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
72
+ max-width: 300px;
73
+ margin: auto;
74
+ padding: 16px;
75
+ text-align: center;
76
+ font-family: arial;
77
+ transition: 0.3s;
78
+ width: 80%;
79
+ border-radius: 5px;
80
+
81
+ }
82
+ .price {
83
+ color: grey;
84
+ font-size: 22px;
85
+ }
86
+ .card button {
87
+ border: none;
88
+ outline: 0;
89
+ padding: 12px;
90
+ color: white;
91
+ background-color: #000;
92
+ text-align: center;
93
+ cursor: pointer;
94
+ width: 100%;
95
+ font-size: 18px;
96
+ }
97
+ .card button:hover {
98
+ opacity: 0.7;
99
+ }
100
+ .card:hover {
101
+ box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
102
+ opacity: 1;
103
+ transform: scale(1.05);
104
+ }
105
+ .card:not(:hover) {
106
+ opacity: 0.6;
107
+ }
108
+ .card:active {
109
+ border: 2px solid #0071c5;
110
+ }
111
+ img {
112
+ border-radius: 5px 5px 0 0;
113
+ }
114
+ .container {
115
+ padding: 2px 16px;
116
+ }
117
+ .checked {
118
+ color: orange;
119
+ }
120
+ </style>
121
+ </head>
122
+
123
+ <body>
124
+ <div class="indexed-sections-page-body">
125
+ <h2 id="header">Indexed Sections Page</h2>
126
+
127
+ <div id="nav_bar" class="topnav">
128
+ <a id="form_link" href="basic_test_page.html">Basic HTML Form</a>
129
+ <a id="media_link" href="media_page.html">Media</a>
130
+ <a id="indexed_sections_link" class="active" href="#">Indexed Sections</a>
131
+ <a id="custom_controls_link" href="custom_controls_page.html">Custom Controls</a>
132
+ </div>
133
+
134
+ <h3 style="text-align:center">Product Card</h3>
135
+
136
+ <div id="product_list" class="row">
137
+ <div class="column">
138
+ <div data-test-id="product_card" class="card">
139
+ <img data-test-id="product_image" src="images/jeans3.jpg" alt="Denim Jeans" style="width:100%">
140
+ <div class="container">
141
+ <h1 data-test-id="product_name">Tailored Jeans</h1>
142
+ <p data-test-id="price" class="price">$59.99</p>
143
+ <p data-test-id="description">Some text about the jeans. Super slim and comfy lorem ipsum lorem jeansum. Lorem jeamsun denim lorem jeansum.</p>
144
+ <div data-test-id="rating">
145
+ <span class="fa fa-star checked"></span>
146
+ <span class="fa fa-star checked"></span>
147
+ <span class="fa fa-star checked"></span>
148
+ <span class="fa fa-star"></span>
149
+ <span class="fa fa-star"></span>
150
+ </div>
151
+ <p><button data-test-id="add_to_cart">Add to Cart</button></p>
152
+ </div>
153
+ </div>
154
+ </div>
155
+
156
+ <div class="column">
157
+ <div data-test-id="product_card" class="card">
158
+ <img data-test-id="product_image" src="images/T-shirt.jpg" alt="Faded Short Sleeve T-shirts" style="width:100%">
159
+ <div class="container">
160
+ <h1 data-test-id="product_name">Faded Short Sleeve T-shirts</h1>
161
+ <p data-test-id="price" class="price">$19.99</p>
162
+ <p data-test-id="description">Faded short sleeve t-shirt with high neckline. Soft and stretchy material for a comfortable fit. Accessorize with a straw hat and you're ready for summer!</p>
163
+ <div data-test-id="rating">
164
+ <span class="fa fa-star checked"></span>
165
+ <span class="fa fa-star checked"></span>
166
+ <span class="fa fa-star checked"></span>
167
+ <span class="fa fa-star checked"></span>
168
+ <span class="fa fa-star"></span>
169
+ </div>
170
+ <p><button data-test-id="add_to_cart">Add to Cart</button></p>
171
+ </div>
172
+ </div>
173
+ </div>
174
+
175
+ <div class="column">
176
+ <div data-test-id="product_card" class="card">
177
+ <img data-test-id="product_image" src="images/Printed_Dress.jpg" alt="Print Dress" style="width:100%">
178
+ <div class="container">
179
+ <h1 data-test-id="product_name">Print Dress</h1>
180
+ <p data-test-id="price" class="price">$69.99</p>
181
+ <p data-test-id="description">Printed evening dress with straight sleeves with black thin waist belt and ruffled linings.</p>
182
+ <div data-test-id="rating">
183
+ <span class="fa fa-star checked"></span>
184
+ <span class="fa fa-star checked"></span>
185
+ <span class="fa fa-star"></span>
186
+ <span class="fa fa-star"></span>
187
+ <span class="fa fa-star"></span>
188
+ </div>
189
+ <p><button data-test-id="add_to_cart">Add to Cart</button></p>
190
+ </div>
191
+ </div>
192
+ </div>
193
+
194
+ <div class="column">
195
+ <div data-test-id="product_card" class="card">
196
+ <img data-test-id="product_image" src="images/Blouse_Black.jpg" alt="Black Blouse" style="width:100%">
197
+ <div class="container">
198
+ <h1 data-test-id="product_name">Blouse</h1>
199
+ <p data-test-id="price" class="price">$27.99</p>
200
+ <p data-test-id="description">Short sleeved blouse with feminine draped sleeve detail.</p>
201
+ <div data-test-id="rating">
202
+ <span class="fa fa-star checked"></span>
203
+ <span class="fa fa-star checked"></span>
204
+ <span class="fa fa-star checked"></span>
205
+ <span class="fa fa-star checked"></span>
206
+ <span class="fa fa-star checked"></span>
207
+ </div>
208
+ <p><button data-test-id="add_to_cart">Add to Cart</button></p>
209
+ </div>
210
+ </div>
211
+ </div>
212
+ </div>
213
+ </div>
214
+ </body>
215
+ </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
@@ -15,19 +15,72 @@
15
15
  text-align: left;
16
16
  padding: 8px;
17
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
+ }
18
42
  </style>
19
43
  </head>
20
44
  <body>
21
45
  <div class="media-page-body">
22
- <h1>Media Page</h1>
23
- <video id="video_player" width="400" controls>
24
- <source src="media/MP4_small.mp4" type="video/mp4">
25
- </video>
46
+ <h2 id="header">Media Page</h2>
26
47
 
27
- <audio id="audio_player" controls>
28
- <source src="media/MPS_sample.mp3" type="audio/mp3">
29
- </audio>
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>
30
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/bbc_scotland_report.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>
31
84
  </div>
32
85
  </body>
33
86
  </html>
@@ -10,15 +10,16 @@ Gem::Specification.new do |spec|
10
10
  spec.required_ruby_version = '>= 2.7.5'
11
11
  spec.authors = ['A.J. Mrozinski']
12
12
  spec.email = ['testcentricity@gmail.com']
13
- spec.summary = 'A Page Object and Data Object Model Framework for desktop and mobile web testing'
13
+ spec.summary = 'A Page Object Model Framework for desktop and mobile web testing'
14
14
  spec.description = '
15
- The TestCentricity™ Web core generic framework for desktop and mobile web browser-based app testing implements
16
- a Page Object Model DSL for use with Cucumber, Capybara, and Selenium-Webdriver v4.x. The gem provides support for running
17
- automated tests against locally hosted desktop browsers, locally hosted emulated mobile browsers (iOS, Android, Windows
18
- Phone, Blackberry, Kindle Fire) running within a local instance of Chrome, mobile Safari browsers on iOS device simulators
19
- or physical iOS devices, mobile Chrome or Android browsers on Android Studio virtual device emulators, or cloud hosted
20
- desktop or mobile web browsers (using the BrowserStack, Sauce Labs, TestingBot, or LambdaTest services).'
21
- spec.homepage = ''
15
+ The TestCentricity™ Web core framework for desktop and mobile web browser-based app testing implements a Page Object
16
+ Model DSL for use with Cucumber, Capybara, and Selenium-Webdriver v4.x. The gem also facilitates the configuration of
17
+ the appropriate Selenium-Webdriver capabilities required to establish a connection with locally hosted desktop browsers,
18
+ locally hosted emulated mobile browsers (iOS, Android, etc.) running within a local instance of Chrome, mobile Safari
19
+ browsers on iOS device simulators or physical iOS devices, mobile Chrome or Android browsers on Android Studio virtual
20
+ device emulators, or cloud hosted desktop or mobile web browsers (using BrowserStack, Sauce Labs, TestingBot, or
21
+ LambdaTest services).'
22
+ spec.homepage = 'https://www.rubydoc.info/gems/testcentricity_web/'
22
23
  spec.license = 'BSD-3-Clause'
23
24
 
24
25
  spec.files = `git ls-files -z`.split("\x0")
@@ -30,10 +31,15 @@ Gem::Specification.new do |spec|
30
31
  spec.add_development_dependency 'bundler'
31
32
  spec.add_development_dependency 'rake'
32
33
  spec.add_development_dependency 'cucumber'
34
+ spec.add_development_dependency 'cuke_modeler', '~> 3.0'
35
+ spec.add_development_dependency 'docker-compose'
33
36
  spec.add_development_dependency 'appium_capybara'
34
37
  spec.add_development_dependency 'parallel_tests'
38
+ spec.add_development_dependency 'httparty'
35
39
  spec.add_development_dependency 'require_all'
40
+ spec.add_development_dependency 'rspec', '~> 3.10'
36
41
  spec.add_development_dependency 'simplecov', ['~> 0.18']
42
+ spec.add_development_dependency 'yard', ['>= 0.9.0']
37
43
 
38
44
  spec.add_runtime_dependency 'appium_lib'
39
45
  spec.add_runtime_dependency 'browserstack-local'