cucumber-sentences 0.0.7 → 0.0.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.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/cucumber-sentences.gemspec +1 -1
- data/lib/cucumber-sentences.rb +301 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ddc29e8c6eaabf556ecf0249f6012026f859a6f6
|
4
|
+
data.tar.gz: 4d2942324e4c05d0b26262d3c41ac9ef523f487c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8321df6af99f1b4b5e781bf5f92691b872a7f96cbf462b3e3ece9d95a7e3052bea8cc9d5a834d600becc10ae36d895b1fbed8d03f441866ca458fb8ec88a09e5
|
7
|
+
data.tar.gz: 4f326b14da6643df24eba81e8500bd0862d5daf85c6dee4123411b9503776452d030c913517e5615a47bdb07295db7bdb74839c4b7f6795369091e1042f9be2c
|
data/README.md
CHANGED
data/cucumber-sentences.gemspec
CHANGED
@@ -2,7 +2,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'cucumber-sentences'
|
5
|
-
s.version = '0.0.
|
5
|
+
s.version = '0.0.8'
|
6
6
|
s.license = 'MIT'
|
7
7
|
s.summary = "Pre-built sentences for your cucumber tests"
|
8
8
|
s.description = "Pre-built sentences for your cucumber tests"
|
data/lib/cucumber-sentences.rb
CHANGED
@@ -112,3 +112,304 @@ Then(/^I should see a message tell me "([^"]*)"$/) do | text |
|
|
112
112
|
end
|
113
113
|
end
|
114
114
|
end
|
115
|
+
|
116
|
+
|
117
|
+
Given(/^I fill "([^"]*)" autocomplete with "([^"]*)"$/) do |field, value|
|
118
|
+
@current_page.get_field(field).when_visible().value = Fakable.fake_if_needed(value)
|
119
|
+
|
120
|
+
sleep 2
|
121
|
+
|
122
|
+
@current_page.get_field("selected_autocomplete").when_visible().click()
|
123
|
+
end
|
124
|
+
|
125
|
+
Given(/^I can see the value "([^"]*)" selected in the select box "([^"]*)"$/) do |value, field|
|
126
|
+
nb_retry = 0
|
127
|
+
|
128
|
+
begin
|
129
|
+
expect(@current_page.get_field(field).when_visible().selected_options()).to include(value)
|
130
|
+
rescue Watir::Exception::NoValueFoundException
|
131
|
+
if nb_retry < 30
|
132
|
+
nb_retry = nb_retry + 1
|
133
|
+
|
134
|
+
sleep 1
|
135
|
+
retry
|
136
|
+
else
|
137
|
+
raise
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
end
|
142
|
+
|
143
|
+
Given(/^I fill "([^"]*)" datepicker with "([^"]*)"$/) do |field, value|
|
144
|
+
nb_retry = 0
|
145
|
+
begin
|
146
|
+
@current_page.get_field(field).when_visible().value = Fakable.fake_if_needed(value)
|
147
|
+
rescue Watir::Wait::TimeoutError
|
148
|
+
# Do not add sleep more, just retry, it's already a timeout error (from when_visible method)
|
149
|
+
if nb_retry < 5
|
150
|
+
nb_retry = nb_retry + 1
|
151
|
+
retry
|
152
|
+
else
|
153
|
+
raise
|
154
|
+
end
|
155
|
+
rescue Exception => ex
|
156
|
+
puts "An error of type #{ex.class} happened, message is #{ex.message}"
|
157
|
+
if nb_retry < 30
|
158
|
+
nb_retry = nb_retry + 1
|
159
|
+
sleep 1
|
160
|
+
retry
|
161
|
+
else
|
162
|
+
raise
|
163
|
+
end
|
164
|
+
end
|
165
|
+
js = 'let calendars = document.getElementsByClassName("show-calendar");';
|
166
|
+
js += 'for(let idx=0; idx < calendars.length; idx++) {';
|
167
|
+
js += ' calendars[idx].removeAttribute("style");';
|
168
|
+
js += ' calendars[idx].classList.remove("show-calendar");';
|
169
|
+
js += '}';
|
170
|
+
@browser.execute_script js
|
171
|
+
end
|
172
|
+
|
173
|
+
When(/^I click on the button "([^"]*)"$/) do | button |
|
174
|
+
if not @current_page.get_button(button)
|
175
|
+
throw "Button #{button} not found"
|
176
|
+
end
|
177
|
+
|
178
|
+
@current_page.get_button(button).when_visible().wait_until do
|
179
|
+
not @current_page.get_button(button).disabled?
|
180
|
+
end
|
181
|
+
|
182
|
+
@current_page.get_button(button).click()
|
183
|
+
end
|
184
|
+
|
185
|
+
Given(/^I try visit the page "([^"]*)" of ([^"]*) "([^"]*)"$/) do | page_name, type, identifier |
|
186
|
+
require File.join(File.absolute_path('../', File.dirname(__FILE__)), 'support/helpers/'+ type )
|
187
|
+
typeClassName = type.sub(/^(\w)/) {|s| s.capitalize}
|
188
|
+
|
189
|
+
clazz = Object.const_get(typeClassName)
|
190
|
+
object = clazz.get(identifier)
|
191
|
+
object['site_url'] = $site_url
|
192
|
+
|
193
|
+
unless object
|
194
|
+
throw "Object #{type} with id #{identifier} not found !"
|
195
|
+
end
|
196
|
+
|
197
|
+
visit_page page_name.gsub(" ","_"), :using_params => object
|
198
|
+
end
|
199
|
+
|
200
|
+
Then(/^I can see "([^"]*)" in element "([^"]*)"(| exactly)$/) do | text, dom_element_name, exactly |
|
201
|
+
nb_retry = 0
|
202
|
+
|
203
|
+
begin
|
204
|
+
if exactly == ' exactly'
|
205
|
+
expect(@current_page.get_element_by_name(dom_element_name).when_visible().text).to eq(text)
|
206
|
+
end
|
207
|
+
expect(@current_page.get_element_by_name(dom_element_name).when_visible().text.downcase).to include(text.downcase)
|
208
|
+
rescue RSpec::Expectations::ExpectationNotMetError
|
209
|
+
if nb_retry < 30
|
210
|
+
nb_retry = nb_retry + 1
|
211
|
+
sleep 1
|
212
|
+
retry
|
213
|
+
else
|
214
|
+
raise
|
215
|
+
end
|
216
|
+
rescue Watir::Wait::TimeoutError
|
217
|
+
# Do not wait more, just retry, it's already a timeout error (from when_visible method)
|
218
|
+
if nb_retry < 5
|
219
|
+
nb_retry = nb_retry + 1
|
220
|
+
sleep 1
|
221
|
+
retry
|
222
|
+
else
|
223
|
+
raise
|
224
|
+
end
|
225
|
+
rescue Exception => ex
|
226
|
+
puts "An error of type #{ex.class} happened, message is #{ex.message}"
|
227
|
+
if nb_retry < 30
|
228
|
+
nb_retry = nb_retry + 1
|
229
|
+
sleep 1
|
230
|
+
retry
|
231
|
+
else
|
232
|
+
raise
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
Then(/^I can see "([^"]*)" in input "([^"]*)"$/) do | value, input |
|
238
|
+
expect(@current_page.get_field(input).when_visible().value).to include(value)
|
239
|
+
end
|
240
|
+
|
241
|
+
Then(/^I should not see a message tell me "([^"]*)"$/) do | text |
|
242
|
+
sleep 2
|
243
|
+
|
244
|
+
expect(@current_page.text).not_to include(Fakable.fake_if_needed(text))
|
245
|
+
end
|
246
|
+
|
247
|
+
Then(/^I should see the (button|field|element) "([^"]*)"(| disabled)$/) do | element_type, dom_element_name, modifier |
|
248
|
+
nb_retry = 0
|
249
|
+
|
250
|
+
begin
|
251
|
+
if element_type == 'button'
|
252
|
+
if modifier == ' disabled'
|
253
|
+
expect(@current_page.get_button(dom_element_name).when_visible.enabled?).to be false
|
254
|
+
else
|
255
|
+
expect(@current_page.get_button(dom_element_name).visible?).to be true
|
256
|
+
end
|
257
|
+
end
|
258
|
+
if element_type == 'field'
|
259
|
+
expect(@current_page.get_field(dom_element_name).visible?).to be true
|
260
|
+
end
|
261
|
+
if element_type == 'element'
|
262
|
+
expect(@current_page.get_element_by_name(dom_element_name).visible?).to be true
|
263
|
+
end
|
264
|
+
rescue RSpec::Expectations::ExpectationNotMetError
|
265
|
+
if nb_retry < 30
|
266
|
+
nb_retry = nb_retry + 1
|
267
|
+
|
268
|
+
sleep 1
|
269
|
+
retry
|
270
|
+
else
|
271
|
+
raise
|
272
|
+
end
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
276
|
+
Given(/^I fill "([^"]*)" ckeditor field with "([^"]*)"$/) do |field, value|
|
277
|
+
nb_retry = 0
|
278
|
+
begin
|
279
|
+
jslist = "return Object.keys(CKEDITOR.instances);"
|
280
|
+
puts @browser.execute_script jslist
|
281
|
+
js = "CKEDITOR.instances." + @current_page.get_ckeditor(field) + ".setData(\"" + value + "\");";
|
282
|
+
@browser.execute_script js
|
283
|
+
js = "CKEDITOR.instances." + @current_page.get_ckeditor(field) + ".fire(\"change\");";
|
284
|
+
@browser.execute_script js
|
285
|
+
step "I can see \"#{value}\" in ckeditor \"#{field}\""
|
286
|
+
|
287
|
+
rescue RSpec::Expectations::ExpectationNotMetError
|
288
|
+
if nb_retry < 30
|
289
|
+
nb_retry = nb_retry + 1
|
290
|
+
|
291
|
+
sleep 1
|
292
|
+
retry
|
293
|
+
else
|
294
|
+
raise
|
295
|
+
end
|
296
|
+
end
|
297
|
+
end
|
298
|
+
|
299
|
+
Given(/^I can see "([^"]*)" in ckeditor "([^"]*)"$/) do |value, field|
|
300
|
+
nb_retry = 0
|
301
|
+
begin
|
302
|
+
js2 = "return CKEDITOR.instances." + @current_page.get_ckeditor(field);
|
303
|
+
# js2 = "if (!CKEDITOR.instances." + @current_page.get_ckeditor(field) + ".document) {"
|
304
|
+
# js2 += " return CKEDITOR.instances." + @current_page.get_ckeditor(field) + ";";
|
305
|
+
# js2 += "}";
|
306
|
+
|
307
|
+
puts js2
|
308
|
+
|
309
|
+
js = "if (!CKEDITOR.instances." + @current_page.get_ckeditor(field) + ".document) {"
|
310
|
+
js += " return CKEDITOR.instances." + @current_page.get_ckeditor(field) + ".getData();";
|
311
|
+
js += "}";
|
312
|
+
js += "return CKEDITOR.instances." + @current_page.get_ckeditor(field) + ".document.getBody().getText();";
|
313
|
+
|
314
|
+
ckEditorText = @browser.execute_script js
|
315
|
+
expect(ckEditorText).to include(value)
|
316
|
+
|
317
|
+
rescue RSpec::Expectations::ExpectationNotMetError
|
318
|
+
if nb_retry < 30
|
319
|
+
nb_retry = nb_retry + 1
|
320
|
+
|
321
|
+
sleep 1
|
322
|
+
retry
|
323
|
+
else
|
324
|
+
raise
|
325
|
+
end
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
329
|
+
Given(/^I refresh the page$/) do
|
330
|
+
@browser.driver.navigate().refresh()
|
331
|
+
end
|
332
|
+
|
333
|
+
Given(/^I wait ([^"]*) seconds$/) do |value|
|
334
|
+
sleep value.to_i
|
335
|
+
end
|
336
|
+
|
337
|
+
When(/^I scroll to "([^"]*)"$/) do |elementClass|
|
338
|
+
@current_page.get_element_by_name(elementClass).when_visible().scroll_into_view
|
339
|
+
end
|
340
|
+
|
341
|
+
Then(/^I can not see "([^"]*)" in element "([^"]*)"$/) do | text, dom_element_name |
|
342
|
+
nb_retry = 0
|
343
|
+
begin
|
344
|
+
expect(@current_page.get_element_by_name(dom_element_name).when_visible().text).not_to include(text)
|
345
|
+
rescue RSpec::Expectations::ExpectationNotMetError
|
346
|
+
if nb_retry < 30
|
347
|
+
nb_retry = nb_retry + 1
|
348
|
+
|
349
|
+
sleep 1
|
350
|
+
retry
|
351
|
+
else
|
352
|
+
raise
|
353
|
+
end
|
354
|
+
end
|
355
|
+
end
|
356
|
+
|
357
|
+
When(/^I upload a file with the filename "([^"]*)" in element "([^"]*)"$/) do |path, dropzone|
|
358
|
+
nb_retry = 0
|
359
|
+
begin
|
360
|
+
dz = @current_page.get_field(dropzone)
|
361
|
+
dz = dz.set(File.join(File.absolute_path('../', File.dirname(__FILE__)), 'support/files/' + path))
|
362
|
+
rescue Watir::Exception::UnknownObjectException
|
363
|
+
if nb_retry < 30
|
364
|
+
nb_retry = nb_retry + 1
|
365
|
+
|
366
|
+
sleep 1
|
367
|
+
retry
|
368
|
+
else
|
369
|
+
raise
|
370
|
+
end
|
371
|
+
end
|
372
|
+
end
|
373
|
+
|
374
|
+
When(/^I hover over the element "([^"]*)"$/) do |element|
|
375
|
+
|
376
|
+
nb_retry = 0
|
377
|
+
begin
|
378
|
+
@browser.driver.action.move_to(@current_page.get_element_by_name(element).wd).perform
|
379
|
+
rescue
|
380
|
+
if nb_retry < 30
|
381
|
+
nb_retry = nb_retry + 1
|
382
|
+
|
383
|
+
sleep 1
|
384
|
+
retry
|
385
|
+
else
|
386
|
+
raise
|
387
|
+
end
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
391
|
+
|
392
|
+
Given(/^I make one pause$/) do
|
393
|
+
sleep 5
|
394
|
+
end
|
395
|
+
|
396
|
+
Given(/^I fill "([^"]*)" contenteditable with "([^"]*)"$/) do |field, value|
|
397
|
+
@current_page.get_field(field).when_visible().send_keys(Fakable.fake_if_needed(value))
|
398
|
+
end
|
399
|
+
|
400
|
+
Given(/^I fill "([^"]*)" js field with "([^"]*)"$/) do |field, value|
|
401
|
+
selector = @current_page.get_js_selector(field);
|
402
|
+
js = "document.querySelector('"+selector+"').value = '" +Fakable.fake_if_needed(value)+"'; document.querySelector('"+selector+"').dispatchEvent(new Event('change'));"
|
403
|
+
@browser.execute_script js
|
404
|
+
end
|
405
|
+
|
406
|
+
## Mail hog
|
407
|
+
Then(/^I see the last email subject "([^"]*)"$/) do |subject|
|
408
|
+
step 'I can see "'+subject+'" in element "last-message-subject"'
|
409
|
+
end
|
410
|
+
|
411
|
+
When(/^I open on the last email link$/) do
|
412
|
+
@browser.execute_script "document.querySelector('.msglist-message .subject').click();";
|
413
|
+
sleep 1
|
414
|
+
@browser.execute_script "document.location.href= jQuery(document.querySelector('iframe').attributes.srcdoc.value).find('a').attr('href')"
|
415
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cucumber-sentences
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- DonkeyCode
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-08-14 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Pre-built sentences for your cucumber tests
|
15
15
|
email: cedric@donkeycode.com
|
@@ -17,7 +17,7 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
-
- .gitignore
|
20
|
+
- ".gitignore"
|
21
21
|
- Gemfile
|
22
22
|
- README.md
|
23
23
|
- cucumber-sentences.gemspec
|
@@ -32,17 +32,17 @@ require_paths:
|
|
32
32
|
- lib
|
33
33
|
required_ruby_version: !ruby/object:Gem::Requirement
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ">="
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: '0'
|
38
38
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '0'
|
43
43
|
requirements: []
|
44
44
|
rubyforge_project:
|
45
|
-
rubygems_version: 2.
|
45
|
+
rubygems_version: 2.6.12
|
46
46
|
signing_key:
|
47
47
|
specification_version: 4
|
48
48
|
summary: Pre-built sentences for your cucumber tests
|