cucumber-sentences 0.0.2 → 0.0.3
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 +1 -0
- data/README.md +25 -0
- data/cucumber-sentences.gemspec +1 -1
- data/lib/cucumber-sentences.rb +78 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae23c12fc9de5b561ba1a7d6970511bcfd0fff2f
|
4
|
+
data.tar.gz: 6b234f3d9c5fad094612e60479f2eda798af63f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 031cec9e51b7e83bd3827cc27c2dc4f743e64365f64d2229b7c21c79db7dfaf698720e8f43e5e86b8a9dd83c1e21aee7816ef66dc04b72185f668d19e76a8299
|
7
|
+
data.tar.gz: a3439d92453cc53f1cf062e3f7e49ebf2a650c223f62fe1f7c8f9da769d97d01600bfb52fd5aeac8150960da82fb17d47d9c4aa9a3e68ae9f6e6cca247d5ab3f
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
cucumber-sentences-0.0.2.gem
|
data/README.md
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# cucumber-sentences
|
2
|
+
|
3
|
+
This gem is a collection of pre-built sentences compatible with cucumber and page-object
|
4
|
+
|
5
|
+
## Setup
|
6
|
+
|
7
|
+
Require in your `Gemfile`
|
8
|
+
|
9
|
+
`````
|
10
|
+
gem "cucumber-sentences"
|
11
|
+
`````
|
12
|
+
|
13
|
+
Add in your `features/step_definitions/imports.rb`
|
14
|
+
|
15
|
+
````
|
16
|
+
require "cucumber-sentences"
|
17
|
+
`````
|
18
|
+
|
19
|
+
That's all !
|
20
|
+
|
21
|
+
## Sentences included
|
22
|
+
|
23
|
+
### Pages manipulation
|
24
|
+
|
25
|
+
- Given I am on the "([^"]*)"
|
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.3'
|
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
@@ -6,4 +6,81 @@ Given(/^I am on the "([^"]*)"$/) do | page_name |
|
|
6
6
|
@current_page = visit_page page_name.gsub(" ","_"), :using_params => object
|
7
7
|
|
8
8
|
step "I should be redirected on \"#{page_name}\""
|
9
|
-
end
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
Given(/^I change the domain to "([^"]*)"$/) do | domain_name |
|
13
|
+
require File.join(File.absolute_path('../', File.dirname(__FILE__)), 'support/helpers/domain')
|
14
|
+
domain = Domain.get(domain_name)
|
15
|
+
|
16
|
+
unless domain
|
17
|
+
throw "Domain #{domain_name} not found !"
|
18
|
+
end
|
19
|
+
|
20
|
+
$site_url = domain
|
21
|
+
end
|
22
|
+
|
23
|
+
Given(/^I am on the "([^"]*)" of (.+) "([^"]*)"$/) do | page_name, type, identifier |
|
24
|
+
require File.join(File.absolute_path('../', File.dirname(__FILE__)), 'support/helpers/'+ type )
|
25
|
+
typeClassName = type.sub(/^(\w)/) {|s| s.capitalize}
|
26
|
+
|
27
|
+
clazz = Object.const_get(typeClassName)
|
28
|
+
object = clazz.get(Fakable.fake_if_needed(identifier))
|
29
|
+
object['site_url'] = $site_url
|
30
|
+
|
31
|
+
unless object
|
32
|
+
throw "Object #{type} with id #{identifier} not found !"
|
33
|
+
end
|
34
|
+
|
35
|
+
@current_page = visit_page page_name.gsub(" ","_"), :using_params => object
|
36
|
+
|
37
|
+
step "I should be redirected on \"#{page_name}\""
|
38
|
+
end
|
39
|
+
|
40
|
+
Given(/^I fill "([^"]*)" field with "([^"]*)"$/) do |field, value|
|
41
|
+
@current_page.get_field(field).when_visible().value = Fakable.fake_if_needed(value)
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
Then(/^I should see field "([^"]*)" filled "([^"]*)"$/) do |field, value|
|
46
|
+
expect(@current_page.get_field(field).when_visible().value).to include(Fakable.fake_if_needed(value))
|
47
|
+
end
|
48
|
+
|
49
|
+
Given(/^I click on the select box "([^"]*)" to select "([^"]*)"$/) do |field, value|
|
50
|
+
@current_page.get_field(field).when_visible().select(Fakable.fake_if_needed(value))
|
51
|
+
end
|
52
|
+
|
53
|
+
Given(/^I try visit the page "([^"]*)"$/) do | page_name |
|
54
|
+
object = {
|
55
|
+
"site_url" => $site_url
|
56
|
+
}
|
57
|
+
visit_page page_name.gsub(" ","_"), :using_params => object
|
58
|
+
end
|
59
|
+
|
60
|
+
Then(/^I should be redirected on "([^"]*)"$/) do | page_name |
|
61
|
+
object = {
|
62
|
+
'site_url' => $site_url
|
63
|
+
}
|
64
|
+
nb_retry = 0
|
65
|
+
|
66
|
+
begin
|
67
|
+
on_page page_name.gsub(" ","_"), :using_params => object do | page |
|
68
|
+
@current_page = page
|
69
|
+
|
70
|
+
if page.respond_to?('is_on_page')
|
71
|
+
expect(page.is_on_page(@browser.url)).to be true
|
72
|
+
else
|
73
|
+
expect(@browser.url).to eq(page.page_url_value)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
rescue RSpec::Expectations::ExpectationNotMetError
|
77
|
+
if nb_retry < 30
|
78
|
+
nb_retry = nb_retry + 1
|
79
|
+
|
80
|
+
sleep 1
|
81
|
+
retry
|
82
|
+
else
|
83
|
+
raise
|
84
|
+
end
|
85
|
+
end
|
86
|
+
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.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- DonkeyCode
|
@@ -17,7 +17,9 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
+
- .gitignore
|
20
21
|
- Gemfile
|
22
|
+
- README.md
|
21
23
|
- cucumber-sentences.gemspec
|
22
24
|
- lib/cucumber-sentences.rb
|
23
25
|
homepage: https://rubygems.org/gems/cucumber-sentences
|