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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9269cec07db5568dcfad4df710a6a0a814c858cb
4
- data.tar.gz: d66952ed6e50f3f6b5ab53ba4e0eb4d87d2362c3
3
+ metadata.gz: ddc29e8c6eaabf556ecf0249f6012026f859a6f6
4
+ data.tar.gz: 4d2942324e4c05d0b26262d3c41ac9ef523f487c
5
5
  SHA512:
6
- metadata.gz: 46bb20e932813d7c3ba4c8f3b0b0e6bdf8229cc17438b15548f9a448932d36e6ec33a194de203b552fbc98ae6009b9d7e086fda3b5e5fe12794fe5e28444cd5a
7
- data.tar.gz: 674bc383b9a98391fedebb7886144e620e40b50816220e8ce5d738cca06b0e59acd529a49873d9331f14d4a898892ceba7ddde2d6685f8468cac465f580b544f
6
+ metadata.gz: 8321df6af99f1b4b5e781bf5f92691b872a7f96cbf462b3e3ece9d95a7e3052bea8cc9d5a834d600becc10ae36d895b1fbed8d03f441866ca458fb8ec88a09e5
7
+ data.tar.gz: 4f326b14da6643df24eba81e8500bd0862d5daf85c6dee4123411b9503776452d030c913517e5615a47bdb07295db7bdb74839c4b7f6795369091e1042f9be2c
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # cucumber-sentences
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/cucumber-sentences.svg)](https://rubygems.org/gems/cucumber-sentences)
4
+
3
5
  This gem is a collection of pre-built sentences compatible with cucumber and page-object
4
6
 
5
7
  ## Setup
@@ -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.7'
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"
@@ -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.7
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-07-02 00:00:00.000000000 Z
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.0.14.1
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