testcentricity_web 4.1.5 → 4.1.6
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.
- checksums.yaml +4 -4
- data/.gitignore +18 -0
- data/.simplecov +5 -0
- data/CHANGELOG.md +14 -0
- data/Gemfile.lock +59 -1
- data/README.md +14 -6
- data/Rakefile +37 -1
- data/config/cucumber.yml +150 -0
- data/docker-compose-v3.yml +48 -0
- data/features/basic_test_page_css.feature +24 -0
- data/features/basic_test_page_xpath.feature +24 -0
- data/features/step_definitions/generic_steps.rb.rb +37 -0
- data/features/support/env.rb +43 -0
- data/features/support/hooks.rb +245 -0
- data/features/support/pages/basic_css_test_page.rb +49 -0
- data/features/support/pages/basic_test_page.rb +238 -0
- data/features/support/pages/basic_xpath_test_page.rb +49 -0
- data/features/support/pages/media_page.rb +11 -0
- data/features/support/world_pages.rb +15 -0
- data/lib/testcentricity_web/data_objects/environment.rb +4 -0
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/web_core/page_object.rb +13 -6
- data/lib/testcentricity_web/web_core/page_objects_helper.rb +41 -8
- data/lib/testcentricity_web/web_core/page_section.rb +1 -16
- data/lib/testcentricity_web/web_elements/select_list.rb +11 -3
- data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +13 -0
- data/reports/.keep +1 -0
- data/test_site/basic_test_page.html +240 -0
- data/test_site/images/Granny.jpg +0 -0
- data/test_site/images/Wilder.jpg +0 -0
- data/test_site/images/You_Betcha.jpg +0 -0
- data/test_site/media/MP4_small.mp4 +0 -0
- data/test_site/media/MPS_sample.mp3 +0 -0
- data/test_site/media_page.html +33 -0
- data/testcentricity_web.gemspec +5 -0
- metadata +104 -4
- data/test_site/test_page.html +0 -11
@@ -6,6 +6,26 @@ module TestCentricity
|
|
6
6
|
include Capybara::Node::Matchers
|
7
7
|
include Test::Unit::Assertions
|
8
8
|
|
9
|
+
attr_accessor :locator_type
|
10
|
+
|
11
|
+
XPATH_SELECTORS = ['//', '[@', '[contains(']
|
12
|
+
CSS_SELECTORS = ['#', ':nth-child(', ':first-child', ':last-child', ':nth-of-type(', ':first-of-type', ':last-of-type', '^=', '$=', '*=', ':contains(']
|
13
|
+
|
14
|
+
def set_locator_type(locator = nil)
|
15
|
+
locator = @locator if locator.nil?
|
16
|
+
is_xpath = XPATH_SELECTORS.any? { |selector| locator.include?(selector) }
|
17
|
+
is_css = CSS_SELECTORS.any? { |selector| locator.include?(selector) }
|
18
|
+
@locator_type = if is_xpath && !is_css
|
19
|
+
:xpath
|
20
|
+
elsif is_css && !is_xpath
|
21
|
+
:css
|
22
|
+
elsif !is_css && !is_xpath
|
23
|
+
:css
|
24
|
+
else
|
25
|
+
:css
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
9
29
|
# Define a trait for this page or section object.
|
10
30
|
#
|
11
31
|
# @param trait_name [Symbol] name of trait (as a symbol)
|
@@ -31,6 +51,8 @@ module TestCentricity
|
|
31
51
|
ui_object.get_attribute(:name)
|
32
52
|
when :title
|
33
53
|
ui_object.title
|
54
|
+
when :secure
|
55
|
+
ui_object.secure?
|
34
56
|
when :exists
|
35
57
|
ui_object.exists?
|
36
58
|
when :enabled
|
@@ -63,6 +85,8 @@ module TestCentricity
|
|
63
85
|
ui_object.indeterminate?
|
64
86
|
when :value, :caption
|
65
87
|
ui_object.get_value
|
88
|
+
when :required
|
89
|
+
ui_object.required?
|
66
90
|
when :maxlength
|
67
91
|
ui_object.get_max_length
|
68
92
|
when :rowcount
|
@@ -241,8 +265,11 @@ module TestCentricity
|
|
241
265
|
end
|
242
266
|
|
243
267
|
# Populate the specified UI elements on this page or section object with the associated data from a Hash passed as an
|
244
|
-
# argument. Data values must be in the form of a String for textfield and
|
245
|
-
# buttons, data must either be a Boolean or a String that evaluates to a Boolean value (Yes, No, 1, 0, true,
|
268
|
+
# argument. Data values must be in the form of a String for textfield, selectlist, and filefield controls. For checkbox
|
269
|
+
# and radio buttons, data must either be a Boolean or a String that evaluates to a Boolean value (Yes, No, 1, 0, true,
|
270
|
+
# false). For range controls, data must be an Integer. For input(type='color') color picker controls, which are specified
|
271
|
+
# as a textfield, data must be in the form of a hex color String. For section objects, data values must be a String, and
|
272
|
+
# the section object must have a set method defined.
|
246
273
|
#
|
247
274
|
# The optional wait_time parameter is used to specify the time (in seconds) to wait for each UI element to become
|
248
275
|
# visible before entering the associated data value. This option is useful in situations where entering data, or
|
@@ -285,14 +312,20 @@ module TestCentricity
|
|
285
312
|
check_state = data_param.is_a?(String) ? data_param.to_bool : data_param
|
286
313
|
data_field.set_selected_state(check_state)
|
287
314
|
when :textfield
|
288
|
-
data_field.
|
289
|
-
|
290
|
-
|
291
|
-
data_field.
|
292
|
-
data_field.
|
315
|
+
if data_field.get_attribute(:type) == 'color'
|
316
|
+
data_field.set(data_param)
|
317
|
+
else
|
318
|
+
data_field.set("#{data_param}\t")
|
319
|
+
if integrity_check && data_field.get_value != data_param
|
320
|
+
data_field.set('')
|
321
|
+
data_field.send_keys(data_param)
|
322
|
+
data_field.send_keys(:tab)
|
323
|
+
end
|
293
324
|
end
|
294
|
-
when :section
|
325
|
+
when :section, :range
|
295
326
|
data_field.set(data_param)
|
327
|
+
when :filefield
|
328
|
+
data_field.file_upload(data_param)
|
296
329
|
end
|
297
330
|
end
|
298
331
|
end
|
@@ -5,10 +5,6 @@ module TestCentricity
|
|
5
5
|
attr_accessor :parent
|
6
6
|
attr_accessor :parent_list
|
7
7
|
attr_accessor :list_index
|
8
|
-
attr_accessor :locator_type
|
9
|
-
|
10
|
-
XPATH_SELECTORS = ['//', '[@', '[contains(']
|
11
|
-
CSS_SELECTORS = ['#', ':nth-child(', ':first-child', ':last-child', ':nth-of-type(', ':first-of-type', ':last-of-type', '^=', '$=', '*=', ':contains(']
|
12
8
|
|
13
9
|
def initialize(name, parent, locator, context)
|
14
10
|
@name = name
|
@@ -17,18 +13,7 @@ module TestCentricity
|
|
17
13
|
@context = context
|
18
14
|
@parent_list = nil
|
19
15
|
@list_index = nil
|
20
|
-
|
21
|
-
is_xpath = XPATH_SELECTORS.any? { |selector| @locator.include?(selector) }
|
22
|
-
is_css = CSS_SELECTORS.any? { |selector| @locator.include?(selector) }
|
23
|
-
@locator_type = if is_xpath && !is_css
|
24
|
-
:xpath
|
25
|
-
elsif is_css && !is_xpath
|
26
|
-
:css
|
27
|
-
elsif !is_css && !is_xpath
|
28
|
-
:css
|
29
|
-
else
|
30
|
-
:css
|
31
|
-
end
|
16
|
+
set_locator_type
|
32
17
|
end
|
33
18
|
|
34
19
|
def get_locator
|
@@ -246,15 +246,23 @@ module TestCentricity
|
|
246
246
|
def get_selected_option
|
247
247
|
@base_object, = find_element
|
248
248
|
object_not_found_exception(@base_object, nil)
|
249
|
-
trigger_list
|
249
|
+
trigger_list unless @options_list.nil?
|
250
250
|
selection = if @base_object.first(:css, @list_item, minimum: 0, wait: 1, visible: :all)
|
251
251
|
@base_object.first(:css, @selected_item, wait: 1, visible: :all).text
|
252
252
|
elsif @base_object.first(:css, @selected_item, minimum: 0, wait: 1, visible: :all)
|
253
253
|
@base_object.first(:css, @selected_item, visible: :all).text
|
254
|
+
elsif @base_object.first('option[selected]', minimum: 0, wait: 1, visible: :all)
|
255
|
+
@base_object.first('option[selected]', wait: 1, visible: :all).text
|
254
256
|
else
|
255
|
-
|
257
|
+
index = get_attribute(:selectedIndex).to_i
|
258
|
+
if index >= 0
|
259
|
+
options = get_options
|
260
|
+
options[index]
|
261
|
+
else
|
262
|
+
''
|
263
|
+
end
|
256
264
|
end
|
257
|
-
trigger_list
|
265
|
+
trigger_list unless @options_list.nil?
|
258
266
|
selection
|
259
267
|
end
|
260
268
|
|
@@ -264,6 +264,19 @@ module TestCentricity
|
|
264
264
|
obj.disabled?
|
265
265
|
end
|
266
266
|
|
267
|
+
# Is UI object's required attribute set?
|
268
|
+
#
|
269
|
+
# @return [Boolean]
|
270
|
+
# @example
|
271
|
+
# first_name_field.required?
|
272
|
+
#
|
273
|
+
def required?
|
274
|
+
obj, type = find_element
|
275
|
+
object_not_found_exception(obj, type)
|
276
|
+
state = get_attribute(:required)
|
277
|
+
state.boolean? ? state : state == 'true'
|
278
|
+
end
|
279
|
+
|
267
280
|
# Is UI object obscured (not currently in viewport and not clickable)?
|
268
281
|
#
|
269
282
|
# @return [Boolean]
|
data/reports/.keep
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Placeholder file to allow the reports folder to be saved to repository. This folder is required for Jenkins test jobs using the Cucumber Reporting plug-in.
|
@@ -0,0 +1,240 @@
|
|
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
|
+
</style>
|
19
|
+
</head>
|
20
|
+
<body>
|
21
|
+
<div class="page-body">
|
22
|
+
<h1>Basic HTML Form Example</h1>
|
23
|
+
<div class="centered">
|
24
|
+
<form name="HTMLFormElements" id="HTMLFormElements">
|
25
|
+
<table border="1" cellpadding="5">
|
26
|
+
<tr>
|
27
|
+
<td>
|
28
|
+
<table>
|
29
|
+
<label id="inputs">Inputs:</label>
|
30
|
+
<tbody>
|
31
|
+
<tr>
|
32
|
+
<td>
|
33
|
+
<label for="username">Username:</label>
|
34
|
+
<input type="text" id="username" name="username" placeholder="User name" required>
|
35
|
+
</td>
|
36
|
+
<td>
|
37
|
+
<label for="password">Password:</label>
|
38
|
+
<input type="password" id="password" name="password" placeholder="Password" required>
|
39
|
+
</td>
|
40
|
+
<td>
|
41
|
+
<label for="maxlength">Max Length:</label>
|
42
|
+
<input type="text" id="maxlength" name="maxlength" placeholder="up to 64 characters" maxlength="64">
|
43
|
+
</td>
|
44
|
+
</tr>
|
45
|
+
<tr>
|
46
|
+
<td>
|
47
|
+
<label for="readonly">Read Only:</label>
|
48
|
+
<input type="text" id="readonly" name="readonly" value="I am a read only text field" readonly>
|
49
|
+
</td>
|
50
|
+
<td>
|
51
|
+
<label for="number-field">Number:</label>
|
52
|
+
<input id="number-field" type="number" name="number" min="10" max="1024" step="1" value="41">
|
53
|
+
</td>
|
54
|
+
<td>
|
55
|
+
<label for="color-picker">Color: </label>
|
56
|
+
<input id="color-picker" type="color" name="color">
|
57
|
+
</td>
|
58
|
+
</tr>
|
59
|
+
<tr>
|
60
|
+
<td>
|
61
|
+
<label for="slider">Range: </label>
|
62
|
+
<input id="slider" type="range" name="slider" min="0" max="50">
|
63
|
+
</td>
|
64
|
+
<td>
|
65
|
+
</td>
|
66
|
+
<td>
|
67
|
+
</td>
|
68
|
+
</tr>
|
69
|
+
</tbody>
|
70
|
+
</table>
|
71
|
+
</td>
|
72
|
+
</tr>
|
73
|
+
|
74
|
+
|
75
|
+
<tr>
|
76
|
+
<td>
|
77
|
+
<label for="comments">TextArea:</label>
|
78
|
+
<textarea id="comments" name="comments" cols="80" rows="3"></textarea>
|
79
|
+
</td>
|
80
|
+
</tr>
|
81
|
+
|
82
|
+
<tr>
|
83
|
+
<td>
|
84
|
+
<label for="filename">Filename:</label>
|
85
|
+
<input type="file" id="filename" name="filename" size="35">
|
86
|
+
</td>
|
87
|
+
</tr>
|
88
|
+
|
89
|
+
<tr>
|
90
|
+
<td>
|
91
|
+
<label id="checkboxes">Checkbox Items:</label>
|
92
|
+
<input type="checkbox" id="check1" name="checkboxes[]" value="cb1" />Checkbox 1
|
93
|
+
<input type="checkbox" id="check2" name="checkboxes[]" value="cb2" />Checkbox 2
|
94
|
+
<input type="checkbox" id="check3" name="checkboxes[]" value="cb3" />Checkbox 3
|
95
|
+
<input type="checkbox" id="check4" name="checkboxes[]" value="cb4" disabled/>Checkbox 4
|
96
|
+
</td>
|
97
|
+
</tr>
|
98
|
+
|
99
|
+
<tr>
|
100
|
+
<td>
|
101
|
+
<label id="radios">Radio Items:</label>
|
102
|
+
<input type="radio" id="radio1" name="radioval" value="rd1" />radio 1
|
103
|
+
<input type="radio" id="radio2" name="radioval" value="rd2" />radio 2
|
104
|
+
<input type="radio" id="radio3" name="radioval" value="rd3" />radio 3
|
105
|
+
<input type="radio" id="radio4" name="radioval" value="rd4" disabled/>radio 4
|
106
|
+
</td>
|
107
|
+
</tr>
|
108
|
+
|
109
|
+
<tr>
|
110
|
+
<td>
|
111
|
+
<label for="multipleselect">Multiple Select Values:</label>
|
112
|
+
<select multiple="multiple" id="multipleselect" name="multipleselect" size="4">
|
113
|
+
<option value="ms1">Selection Item 1</option>
|
114
|
+
<option value="ms2">Selection Item 2</option>
|
115
|
+
<option value="ms3">Selection Item 3</option>
|
116
|
+
<option value="ms4">Selection Item 4</option>
|
117
|
+
</select>
|
118
|
+
</td>
|
119
|
+
</tr>
|
120
|
+
|
121
|
+
<tr>
|
122
|
+
<td>
|
123
|
+
<label for="dropdown">Dropdown:</label>
|
124
|
+
<select id="dropdown" name="dropdown">
|
125
|
+
<option value="dd1">Drop Down Item 1</option>
|
126
|
+
<option value="dd2">Drop Down Item 2</option>
|
127
|
+
<option value="dd3">Drop Down Item 3</option>
|
128
|
+
<option value="dd4">Drop Down Item 4</option>
|
129
|
+
<option value="dd5">Drop Down Item 5</option>
|
130
|
+
<option value="dd6">Drop Down Item 6</option>
|
131
|
+
</select>
|
132
|
+
</td>
|
133
|
+
</tr>
|
134
|
+
|
135
|
+
<tr>
|
136
|
+
<td>
|
137
|
+
<label for="table">Table:</label>
|
138
|
+
<table id="table">
|
139
|
+
<thead>
|
140
|
+
<tr>
|
141
|
+
<th>Company</th>
|
142
|
+
<th>Contact</th>
|
143
|
+
<th>Country</th>
|
144
|
+
</tr>
|
145
|
+
</thead>
|
146
|
+
<tbody>
|
147
|
+
<tr>
|
148
|
+
<td>Alfreds Futterkiste</td>
|
149
|
+
<td>Maria Anders</td>
|
150
|
+
<td>Germany</td>
|
151
|
+
</tr>
|
152
|
+
<tr>
|
153
|
+
<td>Centro comercial Moctezuma</td>
|
154
|
+
<td>Francisco Chang</td>
|
155
|
+
<td>Mexico</td>
|
156
|
+
</tr>
|
157
|
+
<tr>
|
158
|
+
<td>Ernst Handel</td>
|
159
|
+
<td>Roland Mendel</td>
|
160
|
+
<td>Austria</td>
|
161
|
+
</tr>
|
162
|
+
<tr>
|
163
|
+
<td>Island Trading</td>
|
164
|
+
<td>Helen Bennett</td>
|
165
|
+
<td>UK</td>
|
166
|
+
</tr>
|
167
|
+
</tbody>
|
168
|
+
</table>
|
169
|
+
</td>
|
170
|
+
</tr>
|
171
|
+
|
172
|
+
<tr>
|
173
|
+
<td>
|
174
|
+
<table>
|
175
|
+
<label id="images">Images:</label>
|
176
|
+
<tbody>
|
177
|
+
<tr>
|
178
|
+
<td>
|
179
|
+
<img id="image1" src="images/Wilder.jpg" alt="It's alive" style="width:225px;height:225px;">
|
180
|
+
</td>
|
181
|
+
<td>
|
182
|
+
<img id="image2" src="images/You_Betcha.jpg" alt="You Betcha" style="width:225px;height:225px;">
|
183
|
+
</td>
|
184
|
+
<td>
|
185
|
+
<img id="image3" src="wrongname.gif" alt="A broken image" style="width:225px;height:225px;">
|
186
|
+
</td>
|
187
|
+
</tr>
|
188
|
+
</tbody>
|
189
|
+
</table>
|
190
|
+
</td>
|
191
|
+
</tr>
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
<!-- <tr>-->
|
196
|
+
<!-- <td>-->
|
197
|
+
<!-- <div class="form-label">-->
|
198
|
+
<!-- <label for="date-picker">Date: </label>-->
|
199
|
+
<!-- <input id="date-picker" type="date" name="date">-->
|
200
|
+
<!-- </div>-->
|
201
|
+
<!-- </td>-->
|
202
|
+
<!-- </tr>-->
|
203
|
+
<!-- <tr>-->
|
204
|
+
<!-- <td>-->
|
205
|
+
<!-- <div class="form-label">-->
|
206
|
+
<!-- <label for="date-time-picker">Local date time:</label>-->
|
207
|
+
<!-- <input id="date-time-picker" type="datetime-local" name="datetime" value="2018-01-01T01:01">-->
|
208
|
+
<!-- </div>-->
|
209
|
+
<!-- </td>-->
|
210
|
+
<!-- </tr>-->
|
211
|
+
<!-- <tr>-->
|
212
|
+
<!-- <td>-->
|
213
|
+
<!-- <div class="form-label">-->
|
214
|
+
<!-- <label for="email-field">Email: </label>-->
|
215
|
+
<!-- <input id="email-field" type="email" name="email" value="bob@mailinator.com">-->
|
216
|
+
<!-- </div>-->
|
217
|
+
<!-- </td>-->
|
218
|
+
<!-- </tr>-->
|
219
|
+
<!-- <tr>-->
|
220
|
+
<!-- <td>-->
|
221
|
+
<!-- <div class="form-label">-->
|
222
|
+
<!-- <label for="month-field">Month: </label>-->
|
223
|
+
<!-- <input id="month-field" type="month" name="month">-->
|
224
|
+
<!-- </div>-->
|
225
|
+
<!-- </td>-->
|
226
|
+
<!-- </tr>-->
|
227
|
+
|
228
|
+
|
229
|
+
<tr>
|
230
|
+
<td>
|
231
|
+
<input type="reset" id="cancel" name="cancel" value="Cancel" class="styled-click-button">
|
232
|
+
<input type="submit" id="submit" name="submit" value="Submit" class="styled-click-button">
|
233
|
+
</td>
|
234
|
+
</tr>
|
235
|
+
</table>
|
236
|
+
</form>
|
237
|
+
</div>
|
238
|
+
</div>
|
239
|
+
</body>
|
240
|
+
</html>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,33 @@
|
|
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
|
+
</style>
|
19
|
+
</head>
|
20
|
+
<body>
|
21
|
+
<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>
|
26
|
+
|
27
|
+
<audio id="audio_player" controls>
|
28
|
+
<source src="media/MPS_sample.mp3" type="audio/mp3">
|
29
|
+
</audio>
|
30
|
+
|
31
|
+
</div>
|
32
|
+
</body>
|
33
|
+
</html>
|
data/testcentricity_web.gemspec
CHANGED
@@ -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'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testcentricity_web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.1.
|
4
|
+
version: 4.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- A.J. Mrozinski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
11
|
+
date: 2022-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,6 +38,76 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: cucumber
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: appium_capybara
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: parallel_tests
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: require_all
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: simplecov
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.18'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.18'
|
41
111
|
- !ruby/object:Gem::Dependency
|
42
112
|
name: appium_lib
|
43
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -254,6 +324,7 @@ files:
|
|
254
324
|
- ".idea/vcs.xml"
|
255
325
|
- ".rspec"
|
256
326
|
- ".rubocop.yml"
|
327
|
+
- ".simplecov"
|
257
328
|
- ".yardopts"
|
258
329
|
- CHANGELOG.md
|
259
330
|
- CODE_OF_CONDUCT.md
|
@@ -262,6 +333,18 @@ files:
|
|
262
333
|
- LICENSE.md
|
263
334
|
- README.md
|
264
335
|
- Rakefile
|
336
|
+
- config/cucumber.yml
|
337
|
+
- docker-compose-v3.yml
|
338
|
+
- features/basic_test_page_css.feature
|
339
|
+
- features/basic_test_page_xpath.feature
|
340
|
+
- features/step_definitions/generic_steps.rb.rb
|
341
|
+
- features/support/env.rb
|
342
|
+
- features/support/hooks.rb
|
343
|
+
- features/support/pages/basic_css_test_page.rb
|
344
|
+
- features/support/pages/basic_test_page.rb
|
345
|
+
- features/support/pages/basic_xpath_test_page.rb
|
346
|
+
- features/support/pages/media_page.rb
|
347
|
+
- features/support/world_pages.rb
|
265
348
|
- lib/devices/devices.yml
|
266
349
|
- lib/testcentricity_web.rb
|
267
350
|
- lib/testcentricity_web/appium_server.rb
|
@@ -294,7 +377,14 @@ files:
|
|
294
377
|
- lib/testcentricity_web/web_elements/ui_elements_helper.rb
|
295
378
|
- lib/testcentricity_web/web_elements/video.rb
|
296
379
|
- lib/testcentricity_web/world_extensions.rb
|
297
|
-
-
|
380
|
+
- reports/.keep
|
381
|
+
- test_site/basic_test_page.html
|
382
|
+
- test_site/images/Granny.jpg
|
383
|
+
- test_site/images/Wilder.jpg
|
384
|
+
- test_site/images/You_Betcha.jpg
|
385
|
+
- test_site/media/MP4_small.mp4
|
386
|
+
- test_site/media/MPS_sample.mp3
|
387
|
+
- test_site/media_page.html
|
298
388
|
- testcentricity_web.gemspec
|
299
389
|
homepage: ''
|
300
390
|
licenses:
|
@@ -321,4 +411,14 @@ signing_key:
|
|
321
411
|
specification_version: 4
|
322
412
|
summary: A Page Object and Data Object Model Framework for desktop and mobile web
|
323
413
|
testing
|
324
|
-
test_files:
|
414
|
+
test_files:
|
415
|
+
- features/basic_test_page_css.feature
|
416
|
+
- features/basic_test_page_xpath.feature
|
417
|
+
- features/step_definitions/generic_steps.rb.rb
|
418
|
+
- features/support/env.rb
|
419
|
+
- features/support/hooks.rb
|
420
|
+
- features/support/pages/basic_css_test_page.rb
|
421
|
+
- features/support/pages/basic_test_page.rb
|
422
|
+
- features/support/pages/basic_xpath_test_page.rb
|
423
|
+
- features/support/pages/media_page.rb
|
424
|
+
- features/support/world_pages.rb
|