spreewald 1.12.2 → 1.12.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/CHANGELOG.md +2 -1
- data/lib/spreewald/development_steps.rb +5 -1
- data/lib/spreewald_support/version.rb +1 -1
- data/tests/rails-3_capybara-1/config/cucumber.yml +2 -0
- data/tests/rails-3_capybara-1/config/database.yml +7 -0
- data/tests/rails-3_capybara-1/features/support/paths.rb +16 -0
- data/tests/rails-3_capybara-1/features/support/selectors.rb +46 -0
- data/tests/rails-3_capybara-2/Rakefile +18 -0
- data/tests/rails-4_capybara-3/features/email_steps.feature +133 -0
- data/tests/rails-4_capybara-3/features/overriding.feature +5 -0
- data/tests/rails-4_capybara-3/features/step_definitions/overriding_steps.rb +3 -0
- data/tests/rails-4_capybara-3/features/step_definitions/test_steps.rb +43 -0
- data/tests/rails-4_capybara-3/features/support/paths.rb +16 -0
- data/tests/rails-4_capybara-3/features/support/selectors.rb +46 -0
- data/tests/rails-4_capybara-3/features/table_steps.feature +293 -0
- data/tests/rails-4_capybara-3/features/web_steps.feature +164 -0
- data/tests/shared/features/shared/email_steps.feature +2 -0
- data/tests/shared/features/shared/table_steps.feature +1 -0
- data/tests/shared/features/shared/web_steps.feature +13 -1
- metadata +3 -25
- data/tests/rails-3_capybara-1/app +0 -1
- data/tests/rails-3_capybara-1/config/cucumber.yml +0 -1
- data/tests/rails-3_capybara-1/config/database.yml +0 -1
- data/tests/rails-3_capybara-1/db +0 -1
- data/tests/rails-3_capybara-1/features/shared +0 -1
- data/tests/rails-3_capybara-1/features/support/paths.rb +0 -1
- data/tests/rails-3_capybara-1/features/support/selectors.rb +0 -1
- data/tests/rails-3_capybara-1/public +0 -1
- data/tests/rails-3_capybara-2/Rakefile +0 -1
- data/tests/rails-3_capybara-2/app +0 -1
- data/tests/rails-3_capybara-2/config +0 -1
- data/tests/rails-3_capybara-2/db +0 -1
- data/tests/rails-3_capybara-2/features +0 -1
- data/tests/rails-3_capybara-2/public +0 -1
- data/tests/rails-4_capybara-3/app +0 -1
- data/tests/rails-4_capybara-3/db +0 -1
- data/tests/rails-4_capybara-3/features/email_steps.feature +0 -1
- data/tests/rails-4_capybara-3/features/overriding.feature +0 -1
- data/tests/rails-4_capybara-3/features/step_definitions/overriding_steps.rb +0 -1
- data/tests/rails-4_capybara-3/features/step_definitions/test_steps.rb +0 -1
- data/tests/rails-4_capybara-3/features/support/paths.rb +0 -1
- data/tests/rails-4_capybara-3/features/support/selectors.rb +0 -1
- data/tests/rails-4_capybara-3/features/table_steps.feature +0 -1
- data/tests/rails-4_capybara-3/features/web_steps.feature +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c9e7da11d01d3fec20fe5e70ed33127ed752aae6
|
|
4
|
+
data.tar.gz: 693f33da1acd44abb3770414bd21058a2a3be7b2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b291af9c6c82e6dbb67feabb695e8809754a25866224c07912020a8db9e18cb091ae9655f913ee488995b41fff6f3925853484061594697042a9d4ebb1982916
|
|
7
|
+
data.tar.gz: f9e5ae09c7505a9a4ab7e68766abce4e641b2e804baa5b557d368ae8778debb7959e5776c81ffc9f8d577b664ee1be3ca7280c61d1b67a642340dd428c36d621
|
data/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,8 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## 1.12.3
|
|
8
|
+
Prevent wall of warnings when `Then console` is used multiple times in on test run ([issue](https://github.com/makandra/spreewald/issues/80))
|
|
8
9
|
|
|
9
10
|
## 1.12.2
|
|
10
11
|
Always check the current driver by its class (see [issue](https://github.com/makandra/spreewald/issues/74))
|
|
@@ -26,7 +26,11 @@ Then 'console' do
|
|
|
26
26
|
# https://github.com/ruby/ruby/blob/c08f7b80889b531865e74bc5f573df8fa27f2088/lib/irb.rb#L418
|
|
27
27
|
# with injected workspace. See https://github.com/makandra/spreewald/issues/77 for reasons.
|
|
28
28
|
|
|
29
|
-
IRB
|
|
29
|
+
# Don't setup IRB twice to avoid wall of
|
|
30
|
+
# "already initialized constant" warnings
|
|
31
|
+
unless IRB.conf[:LOAD_MODULES]
|
|
32
|
+
IRB.setup(nil)
|
|
33
|
+
end
|
|
30
34
|
|
|
31
35
|
workspace = IRB::WorkSpace.new(binding)
|
|
32
36
|
irb = IRB::Irb.new(workspace)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module NavigationHelpers
|
|
2
|
+
|
|
3
|
+
def path_to(page_name)
|
|
4
|
+
case page_name
|
|
5
|
+
when /^"(.*)"$/
|
|
6
|
+
$1
|
|
7
|
+
|
|
8
|
+
else
|
|
9
|
+
raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
|
|
10
|
+
"Now, go and add a mapping in #{__FILE__}"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
World(NavigationHelpers)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module HtmlSelectorsHelpers
|
|
2
|
+
# Maps a name to a selector. Used primarily by the
|
|
3
|
+
#
|
|
4
|
+
# When /^(.+) within (.+)$/ do |step, scope|
|
|
5
|
+
#
|
|
6
|
+
# step definitions in web_steps.rb
|
|
7
|
+
#
|
|
8
|
+
def selector_for(locator)
|
|
9
|
+
case locator
|
|
10
|
+
|
|
11
|
+
when /^a panel?$/
|
|
12
|
+
'.panel'
|
|
13
|
+
|
|
14
|
+
when /^the timeline?$/
|
|
15
|
+
'.timeline'
|
|
16
|
+
|
|
17
|
+
when /^the table row containing "(.+?)"$/
|
|
18
|
+
all('tr').detect { |tr| tr.text.include? $1 } || raise("Could not find tr containing #{$1.inspect}")
|
|
19
|
+
|
|
20
|
+
# Add more mappings here.
|
|
21
|
+
# Here is an example that pulls values out of the Regexp:
|
|
22
|
+
#
|
|
23
|
+
# when /^the (notice|error|info) flash$/
|
|
24
|
+
# ".flash.#{$1}"
|
|
25
|
+
|
|
26
|
+
# You can also return an array to use a different selector
|
|
27
|
+
# type, like:
|
|
28
|
+
#
|
|
29
|
+
# when /the header/
|
|
30
|
+
# [:xpath, "//header"]
|
|
31
|
+
|
|
32
|
+
# This allows you to provide a quoted selector as the scope
|
|
33
|
+
# for "within" steps as was previously the default for the
|
|
34
|
+
# web steps:
|
|
35
|
+
when /^"(.+)"$/
|
|
36
|
+
$1
|
|
37
|
+
|
|
38
|
+
else
|
|
39
|
+
raise "Can't find mapping from \"#{locator}\" to a selector.\n" +
|
|
40
|
+
"Now, go and add a mapping in #{__FILE__}"
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
World(HtmlSelectorsHelpers)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env rake
|
|
2
|
+
require 'cucumber/rake/task'
|
|
3
|
+
|
|
4
|
+
desc 'Default: Run all specs for a specific rails version.'
|
|
5
|
+
task :default => :features
|
|
6
|
+
|
|
7
|
+
desc 'Run all specs for rails 3.2'
|
|
8
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
9
|
+
feature = if ENV['SINGLE_FEATURE']
|
|
10
|
+
"../../shared/features/shared/#{ ENV['SINGLE_FEATURE'] }"
|
|
11
|
+
else
|
|
12
|
+
'features/shared'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# tell cucumber where it finds it files (subdirectories and symlinks are confusing it)
|
|
16
|
+
t.cucumber_opts = "--require features --require features/shared #{feature}"
|
|
17
|
+
end
|
|
18
|
+
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
Feature: Test Spreewald's email steps
|
|
2
|
+
|
|
3
|
+
Scenario: /^no e?mail should have been sent$/
|
|
4
|
+
When I go to "/emails/do_nothing"
|
|
5
|
+
Then the following step should succeed:
|
|
6
|
+
| no email should have been sent |
|
|
7
|
+
|
|
8
|
+
When I go to "/emails/send_email"
|
|
9
|
+
Then the following step should fail:
|
|
10
|
+
| no email should have been sent |
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
Scenario: /^I should see "([^\"]*)" in the e?mail$/
|
|
14
|
+
When I go to "/emails/send_email"
|
|
15
|
+
Then the following step should succeed:
|
|
16
|
+
| I should see "BODY" in the email |
|
|
17
|
+
But the following step should fail:
|
|
18
|
+
| I should see "XYZ" in the email |
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
Scenario: /^(an|no) e?mail should have been sent with:$/
|
|
22
|
+
When I go to "/emails/send_email"
|
|
23
|
+
|
|
24
|
+
# Test without body
|
|
25
|
+
Then the following multiline step should succeed:
|
|
26
|
+
"""
|
|
27
|
+
Then an email should have been sent with:
|
|
28
|
+
'''
|
|
29
|
+
From: from@example.com
|
|
30
|
+
Reply-To: reply-to@example.com
|
|
31
|
+
To: to@example.com
|
|
32
|
+
Subject: SUBJECT
|
|
33
|
+
'''
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
# Test with body
|
|
37
|
+
Then the following multiline step should succeed:
|
|
38
|
+
"""
|
|
39
|
+
Then an email should have been sent with:
|
|
40
|
+
'''
|
|
41
|
+
From: from@example.com
|
|
42
|
+
Reply-To: reply-to@example.com
|
|
43
|
+
To: to@example.com
|
|
44
|
+
Subject: SUBJECT
|
|
45
|
+
|
|
46
|
+
BODY
|
|
47
|
+
'''
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
# Test with incorrect From header
|
|
51
|
+
Then the following multiline step should fail:
|
|
52
|
+
"""
|
|
53
|
+
Then an email should have been sent with:
|
|
54
|
+
'''
|
|
55
|
+
From: other-from@example.com
|
|
56
|
+
Reply-To: reply-to@example.com
|
|
57
|
+
To: to@example.com
|
|
58
|
+
Subject: SUBJECT
|
|
59
|
+
|
|
60
|
+
BODY
|
|
61
|
+
'''
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
# Test with incorrect Reply-To header
|
|
65
|
+
Then the following multiline step should fail:
|
|
66
|
+
"""
|
|
67
|
+
Then an email should have been sent with:
|
|
68
|
+
'''
|
|
69
|
+
From: from@example.com
|
|
70
|
+
Reply-To: other-reply-to@example.com
|
|
71
|
+
To: to@example.com
|
|
72
|
+
Subject: SUBJECT
|
|
73
|
+
|
|
74
|
+
BODY
|
|
75
|
+
'''
|
|
76
|
+
"""
|
|
77
|
+
# Test with incorrect To header
|
|
78
|
+
Then the following multiline step should fail:
|
|
79
|
+
"""
|
|
80
|
+
Then an email should have been sent with:
|
|
81
|
+
'''
|
|
82
|
+
From: from@example.com
|
|
83
|
+
Reply-To: reply-to@example.com
|
|
84
|
+
To: other-to@example.com
|
|
85
|
+
Subject: SUBJECT
|
|
86
|
+
|
|
87
|
+
BODY
|
|
88
|
+
'''
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
# Test with incorrect Subject header
|
|
92
|
+
Then the following multiline step should fail:
|
|
93
|
+
"""
|
|
94
|
+
Then an email should have been sent with:
|
|
95
|
+
'''
|
|
96
|
+
From: from@example.com
|
|
97
|
+
Reply-To: reply-to@example.com
|
|
98
|
+
To: to@example.com
|
|
99
|
+
Subject: OTHER-SUBJECT
|
|
100
|
+
|
|
101
|
+
BODY
|
|
102
|
+
'''
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
# Test with incorrect body
|
|
106
|
+
Then the following multiline step should fail:
|
|
107
|
+
"""
|
|
108
|
+
Then an email should have been sent with:
|
|
109
|
+
'''
|
|
110
|
+
From: from@example.com
|
|
111
|
+
Reply-To: reply-to@example.com
|
|
112
|
+
To: to@example.com
|
|
113
|
+
Subject: SUBJECT
|
|
114
|
+
|
|
115
|
+
OTHER-BODY
|
|
116
|
+
'''
|
|
117
|
+
"""
|
|
118
|
+
|
|
119
|
+
# Test body with multiple paragraphs
|
|
120
|
+
Then the following multiline step should fail:
|
|
121
|
+
"""
|
|
122
|
+
Then an email should have been sent with:
|
|
123
|
+
'''
|
|
124
|
+
From: from@example.com
|
|
125
|
+
Reply-To: reply-to@example.com
|
|
126
|
+
To: to@example.com
|
|
127
|
+
Subject: SUBJECT
|
|
128
|
+
|
|
129
|
+
BODY
|
|
130
|
+
|
|
131
|
+
MORE-BODY
|
|
132
|
+
'''
|
|
133
|
+
"""
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
RSPEC_EXPECTATION_NOT_MET_ERROR = RSpec::Expectations::ExpectationNotMetError
|
|
2
|
+
|
|
3
|
+
Then /^the following steps? should (fail|succeed):$/ do |expectation, steps_table|
|
|
4
|
+
steps = steps_table.raw.flatten
|
|
5
|
+
|
|
6
|
+
steps.each do |step|
|
|
7
|
+
if expectation == 'fail'
|
|
8
|
+
expect { step(step) }.to raise_error(RSPEC_EXPECTATION_NOT_MET_ERROR)
|
|
9
|
+
|
|
10
|
+
else # succeed
|
|
11
|
+
step(step)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
When /^I run the following steps?:$/ do |steps_table|
|
|
18
|
+
steps = steps_table.raw.flatten
|
|
19
|
+
|
|
20
|
+
steps.each do |step|
|
|
21
|
+
step(step)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
Then /^the following multiline step should (fail|succeed):$/ do |expectation, multiline_step|
|
|
26
|
+
multiline_step = multiline_step.gsub(%{'''}, %{"""})
|
|
27
|
+
if expectation == 'fail'
|
|
28
|
+
expect { steps(multiline_step) }.to raise_error(RSPEC_EXPECTATION_NOT_MET_ERROR)
|
|
29
|
+
else # succeed
|
|
30
|
+
steps(multiline_step)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
Then(/^a hidden string with quotes should not be visible$/) do
|
|
36
|
+
hidden_string = %Q{hidden '" quotes}
|
|
37
|
+
assert_hidden(:text => hidden_string)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
Then(/^a visible string with quotes should be visible$/) do
|
|
41
|
+
visible_string = %Q{visible '" quotes}
|
|
42
|
+
assert_visible(:text => visible_string)
|
|
43
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module NavigationHelpers
|
|
2
|
+
|
|
3
|
+
def path_to(page_name)
|
|
4
|
+
case page_name
|
|
5
|
+
when /^"(.*)"$/
|
|
6
|
+
$1
|
|
7
|
+
|
|
8
|
+
else
|
|
9
|
+
raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
|
|
10
|
+
"Now, go and add a mapping in #{__FILE__}"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
World(NavigationHelpers)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module HtmlSelectorsHelpers
|
|
2
|
+
# Maps a name to a selector. Used primarily by the
|
|
3
|
+
#
|
|
4
|
+
# When /^(.+) within (.+)$/ do |step, scope|
|
|
5
|
+
#
|
|
6
|
+
# step definitions in web_steps.rb
|
|
7
|
+
#
|
|
8
|
+
def selector_for(locator)
|
|
9
|
+
case locator
|
|
10
|
+
|
|
11
|
+
when /^a panel?$/
|
|
12
|
+
'.panel'
|
|
13
|
+
|
|
14
|
+
when /^the timeline?$/
|
|
15
|
+
'.timeline'
|
|
16
|
+
|
|
17
|
+
when /^the table row containing "(.+?)"$/
|
|
18
|
+
all('tr').detect { |tr| tr.text.include? $1 } || raise("Could not find tr containing #{$1.inspect}")
|
|
19
|
+
|
|
20
|
+
# Add more mappings here.
|
|
21
|
+
# Here is an example that pulls values out of the Regexp:
|
|
22
|
+
#
|
|
23
|
+
# when /^the (notice|error|info) flash$/
|
|
24
|
+
# ".flash.#{$1}"
|
|
25
|
+
|
|
26
|
+
# You can also return an array to use a different selector
|
|
27
|
+
# type, like:
|
|
28
|
+
#
|
|
29
|
+
# when /the header/
|
|
30
|
+
# [:xpath, "//header"]
|
|
31
|
+
|
|
32
|
+
# This allows you to provide a quoted selector as the scope
|
|
33
|
+
# for "within" steps as was previously the default for the
|
|
34
|
+
# web steps:
|
|
35
|
+
when /^"(.+)"$/
|
|
36
|
+
$1
|
|
37
|
+
|
|
38
|
+
else
|
|
39
|
+
raise "Can't find mapping from \"#{locator}\" to a selector.\n" +
|
|
40
|
+
"Now, go and add a mapping in #{__FILE__}"
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
World(HtmlSelectorsHelpers)
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
Feature: Table steps
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
Scenario: should see a table with the following rows
|
|
5
|
+
When I go to "/tables/table1"
|
|
6
|
+
Then the following multiline step should succeed:
|
|
7
|
+
"""
|
|
8
|
+
Then I should see a table with the following rows:
|
|
9
|
+
| 1-1 | 1-2 | 1-3 |
|
|
10
|
+
| 2-1 | 2-2 | 2-3 |
|
|
11
|
+
| 3-1 | 3-2 | 3-3 |
|
|
12
|
+
"""
|
|
13
|
+
And the following multiline step should succeed:
|
|
14
|
+
"""
|
|
15
|
+
Then I should see a table with the following rows:
|
|
16
|
+
| 1-1 | 1-3 |
|
|
17
|
+
| 2-1 | 2-3 |
|
|
18
|
+
| 3-1 | 3-3 |
|
|
19
|
+
"""
|
|
20
|
+
And the following multiline step should succeed:
|
|
21
|
+
"""
|
|
22
|
+
Then I should see a table with the following rows:
|
|
23
|
+
| 1-2 | 1-3 |
|
|
24
|
+
| 2-2 | 2-3 |
|
|
25
|
+
| 3-2 | 3-3 |
|
|
26
|
+
"""
|
|
27
|
+
And the following multiline step should succeed:
|
|
28
|
+
"""
|
|
29
|
+
Then I should see a table with the following rows:
|
|
30
|
+
| 1-1 | 1-2 | 1-3 |
|
|
31
|
+
| 3-1 | 3-2 | 3-3 |
|
|
32
|
+
"""
|
|
33
|
+
And the following multiline step should succeed:
|
|
34
|
+
"""
|
|
35
|
+
Then I should see a table with the following rows:
|
|
36
|
+
| 2-1 | 2-2 | 2-3 |
|
|
37
|
+
| 3-1 | 3-2 | 3-3 |
|
|
38
|
+
"""
|
|
39
|
+
And the following multiline step should succeed:
|
|
40
|
+
"""
|
|
41
|
+
Then I should see a table with the following rows:
|
|
42
|
+
| 1-1 | 1-2 | 1-3 |
|
|
43
|
+
| 2-1 | 2-2 | 2-3 |
|
|
44
|
+
"""
|
|
45
|
+
And the following multiline step should succeed:
|
|
46
|
+
"""
|
|
47
|
+
Then I should see a table with the following rows:
|
|
48
|
+
| 1-1 | 1-3 |
|
|
49
|
+
| 3-1 | 3-3 |
|
|
50
|
+
"""
|
|
51
|
+
And the following multiline step should succeed:
|
|
52
|
+
"""
|
|
53
|
+
Then I should see a table with the following rows:
|
|
54
|
+
| 1* | 1-3 |
|
|
55
|
+
| 3* | 3-3 |
|
|
56
|
+
"""
|
|
57
|
+
And the following multiline step should fail:
|
|
58
|
+
"""
|
|
59
|
+
Then I should see a table with the following rows:
|
|
60
|
+
| 3-1 | 3-2 | 3-3 |
|
|
61
|
+
| 1-1 | 1-2 | 1-3 |
|
|
62
|
+
| 2-1 | 2-2 | 2-3 |
|
|
63
|
+
"""
|
|
64
|
+
But the following multiline step should fail:
|
|
65
|
+
"""
|
|
66
|
+
Then I should see a table with the following rows:
|
|
67
|
+
| 1-1 | 1-2 | 1-3 |
|
|
68
|
+
| 2-1 | 2-2 | 2-3 |
|
|
69
|
+
| 3-1 | 3-2 | foo |
|
|
70
|
+
"""
|
|
71
|
+
And the following multiline step should fail:
|
|
72
|
+
"""
|
|
73
|
+
Then I should see a table with the following rows:
|
|
74
|
+
| 1-1 | 1-2 | 1-3 |
|
|
75
|
+
| 2-1 | foo | 2-3 |
|
|
76
|
+
| 3-1 | 3-2 | 3-3 |
|
|
77
|
+
"""
|
|
78
|
+
And the following multiline step should fail:
|
|
79
|
+
"""
|
|
80
|
+
Then I should see a table with the following rows:
|
|
81
|
+
| 1 | 1-3 |
|
|
82
|
+
| 3 | 3-3 |
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
Scenario: Cell content normalization
|
|
87
|
+
When I go to "/tables/table_with_weird_spaces"
|
|
88
|
+
Then I should see a table with the following rows:
|
|
89
|
+
| one two | three four |
|
|
90
|
+
| five six | seven eight |
|
|
91
|
+
| nineten | eleventwelve |
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
Scenario: should not see a table with the following rows
|
|
95
|
+
When I go to "/tables/table1"
|
|
96
|
+
Then the following multiline step should fail:
|
|
97
|
+
"""
|
|
98
|
+
Then I should not see a table with the following rows:
|
|
99
|
+
| 1-1 | 1-2 | 1-3 |
|
|
100
|
+
| 2-1 | 2-2 | 2-3 |
|
|
101
|
+
| 3-1 | 3-2 | 3-3 |
|
|
102
|
+
"""
|
|
103
|
+
But the following multiline step should succeed:
|
|
104
|
+
"""
|
|
105
|
+
Then I should not see a table with the following rows:
|
|
106
|
+
| 3-1 | 3-2 | 3-3 |
|
|
107
|
+
| 1-1 | 1-2 | 1-3 |
|
|
108
|
+
| 2-1 | 2-2 | 2-3 |
|
|
109
|
+
"""
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
Scenario: should see a table with exactly the following rows
|
|
113
|
+
When I go to "/tables/table1"
|
|
114
|
+
Then the following multiline step should succeed:
|
|
115
|
+
"""
|
|
116
|
+
Then I should see a table with exactly the following rows:
|
|
117
|
+
| 1-1 | 1-2 | 1-3 |
|
|
118
|
+
| 2-1 | 2-2 | 2-3 |
|
|
119
|
+
| 3-1 | 3-2 | 3-3 |
|
|
120
|
+
"""
|
|
121
|
+
And the following multiline step should succeed:
|
|
122
|
+
"""
|
|
123
|
+
Then I should see a table with exactly the following rows:
|
|
124
|
+
| 1-1 | 1-3 |
|
|
125
|
+
| 2-1 | 2-3 |
|
|
126
|
+
| 3-1 | 3-3 |
|
|
127
|
+
"""
|
|
128
|
+
But the following multiline step should fail:
|
|
129
|
+
"""
|
|
130
|
+
Then I should see a table with exactly the following rows:
|
|
131
|
+
| 2-1 | 2-2 | 2-3 |
|
|
132
|
+
| 1-1 | 1-2 | 1-3 |
|
|
133
|
+
| 3-1 | 3-2 | 3-3 |
|
|
134
|
+
"""
|
|
135
|
+
And the following multiline step should fail:
|
|
136
|
+
"""
|
|
137
|
+
Then I should see a table with exactly the following rows:
|
|
138
|
+
| 1-1 | 1-2 | 1-3 |
|
|
139
|
+
| 3-1 | 3-2 | 3-3 |
|
|
140
|
+
"""
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
Scenario: should not see a table with exactly the following rows
|
|
144
|
+
When I go to "/tables/table1"
|
|
145
|
+
Then the following multiline step should fail:
|
|
146
|
+
"""
|
|
147
|
+
Then I should not see a table with exactly the following rows:
|
|
148
|
+
| 1-1 | 1-2 | 1-3 |
|
|
149
|
+
| 2-1 | 2-2 | 2-3 |
|
|
150
|
+
| 3-1 | 3-2 | 3-3 |
|
|
151
|
+
"""
|
|
152
|
+
And the following multiline step should fail:
|
|
153
|
+
"""
|
|
154
|
+
Then I should not see a table with exactly the following rows:
|
|
155
|
+
| 1-1 | 1-3 |
|
|
156
|
+
| 2-1 | 2-3 |
|
|
157
|
+
| 3-1 | 3-3 |
|
|
158
|
+
"""
|
|
159
|
+
But the following multiline step should succeed:
|
|
160
|
+
"""
|
|
161
|
+
Then I should not see a table with exactly the following rows:
|
|
162
|
+
| 2-1 | 2-2 | 2-3 |
|
|
163
|
+
| 1-1 | 1-2 | 1-3 |
|
|
164
|
+
| 3-1 | 3-2 | 3-3 |
|
|
165
|
+
"""
|
|
166
|
+
And the following multiline step should succeed:
|
|
167
|
+
"""
|
|
168
|
+
Then I should not see a table with exactly the following rows:
|
|
169
|
+
| 1-1 | 1-2 | 1-3 |
|
|
170
|
+
| 3-1 | 3-2 | 3-3 |
|
|
171
|
+
"""
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
Scenario: should see a table with the following rows in any order
|
|
175
|
+
When I go to "/tables/table1"
|
|
176
|
+
Then the following multiline step should succeed:
|
|
177
|
+
"""
|
|
178
|
+
Then I should see a table with the following rows in any order:
|
|
179
|
+
| 1-1 | 1-2 | 1-3 |
|
|
180
|
+
| 2-1 | 2-2 | 2-3 |
|
|
181
|
+
| 3-1 | 3-2 | 3-3 |
|
|
182
|
+
"""
|
|
183
|
+
And the following multiline step should succeed:
|
|
184
|
+
"""
|
|
185
|
+
Then I should see a table with the following rows in any order:
|
|
186
|
+
| 1-1 | 1-2 | 1-3 |
|
|
187
|
+
| 3-1 | 3-2 | 3-3 |
|
|
188
|
+
"""
|
|
189
|
+
And the following multiline step should succeed:
|
|
190
|
+
"""
|
|
191
|
+
Then I should see a table with the following rows in any order:
|
|
192
|
+
| 3-1 | 3-2 | 3-3 |
|
|
193
|
+
| 1-1 | 1-2 | 1-3 |
|
|
194
|
+
| 2-1 | 2-2 | 2-3 |
|
|
195
|
+
"""
|
|
196
|
+
But the following multiline step should fail:
|
|
197
|
+
"""
|
|
198
|
+
Then I should see a table with the following rows in any order:
|
|
199
|
+
| 1-1 | 1-2 | 1-3 |
|
|
200
|
+
| 2-1 | 2-2 | 2-3 |
|
|
201
|
+
| 3-1 | 3-2 | foo |
|
|
202
|
+
"""
|
|
203
|
+
And the following multiline step should fail:
|
|
204
|
+
"""
|
|
205
|
+
Then I should see a table with the following rows in any order:
|
|
206
|
+
| 1 | 1-3 |
|
|
207
|
+
| 3 | 3-3 |
|
|
208
|
+
"""
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
Scenario: should not see a table with the following rows in any order
|
|
212
|
+
When I go to "/tables/table1"
|
|
213
|
+
Then the following multiline step should fail:
|
|
214
|
+
"""
|
|
215
|
+
Then I should not see a table with the following rows in any order:
|
|
216
|
+
| 1-1 | 1-2 | 1-3 |
|
|
217
|
+
| 2-1 | 2-2 | 2-3 |
|
|
218
|
+
| 3-1 | 3-2 | 3-3 |
|
|
219
|
+
"""
|
|
220
|
+
And the following multiline step should fail:
|
|
221
|
+
"""
|
|
222
|
+
Then I should not see a table with the following rows in any order:
|
|
223
|
+
| 1-1 | 1-2 | 1-3 |
|
|
224
|
+
| 3-1 | 3-2 | 3-3 |
|
|
225
|
+
"""
|
|
226
|
+
And the following multiline step should fail:
|
|
227
|
+
"""
|
|
228
|
+
Then I should not see a table with the following rows in any order:
|
|
229
|
+
| 3-1 | 3-2 | 3-3 |
|
|
230
|
+
| 1-1 | 1-2 | 1-3 |
|
|
231
|
+
| 2-1 | 2-2 | 2-3 |
|
|
232
|
+
"""
|
|
233
|
+
But the following multiline step should succeed:
|
|
234
|
+
"""
|
|
235
|
+
Then I should not see a table with the following rows in any order:
|
|
236
|
+
| 1-1 | 1-2 | 1-3 |
|
|
237
|
+
| 2-1 | 2-2 | 2-3 |
|
|
238
|
+
| 3-1 | 3-2 | foo |
|
|
239
|
+
"""
|
|
240
|
+
And the following multiline step should succeed:
|
|
241
|
+
"""
|
|
242
|
+
Then I should not see a table with the following rows in any order:
|
|
243
|
+
| 1 | 1-3 |
|
|
244
|
+
| 3 | 3-3 |
|
|
245
|
+
"""
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
Scenario: should see a table with exactly the following rows in any order
|
|
249
|
+
When I go to "/tables/table1"
|
|
250
|
+
Then the following multiline step should succeed:
|
|
251
|
+
"""
|
|
252
|
+
Then I should see a table with exactly the following rows in any order:
|
|
253
|
+
| 1-1 | 1-2 | 1-3 |
|
|
254
|
+
| 2-1 | 2-2 | 2-3 |
|
|
255
|
+
| 3-1 | 3-2 | 3-3 |
|
|
256
|
+
"""
|
|
257
|
+
And the following multiline step should succeed:
|
|
258
|
+
"""
|
|
259
|
+
Then I should see a table with exactly the following rows in any order:
|
|
260
|
+
| 3-1 | 3-2 | 3-3 |
|
|
261
|
+
| 1-1 | 1-2 | 1-3 |
|
|
262
|
+
| 2-1 | 2-2 | 2-3 |
|
|
263
|
+
"""
|
|
264
|
+
But the following multiline step should fail:
|
|
265
|
+
"""
|
|
266
|
+
Then I should see a table with exactly the following rows in any order:
|
|
267
|
+
| 1-1 | 1-2 | 1-3 |
|
|
268
|
+
| 3-1 | 3-2 | 3-3 |
|
|
269
|
+
"""
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
Scenario: should not see a table with exactly the following rows in any order
|
|
273
|
+
When I go to "/tables/table1"
|
|
274
|
+
Then the following multiline step should fail:
|
|
275
|
+
"""
|
|
276
|
+
Then I should not see a table with exactly the following rows in any order:
|
|
277
|
+
| 1-1 | 1-2 | 1-3 |
|
|
278
|
+
| 2-1 | 2-2 | 2-3 |
|
|
279
|
+
| 3-1 | 3-2 | 3-3 |
|
|
280
|
+
"""
|
|
281
|
+
And the following multiline step should fail:
|
|
282
|
+
"""
|
|
283
|
+
Then I should not see a table with exactly the following rows in any order:
|
|
284
|
+
| 3-1 | 3-2 | 3-3 |
|
|
285
|
+
| 1-1 | 1-2 | 1-3 |
|
|
286
|
+
| 2-1 | 2-2 | 2-3 |
|
|
287
|
+
"""
|
|
288
|
+
But the following multiline step should succeed:
|
|
289
|
+
"""
|
|
290
|
+
Then I should not see a table with exactly the following rows in any order:
|
|
291
|
+
| 1-1 | 1-2 | 1-3 |
|
|
292
|
+
| 3-1 | 3-2 | 3-3 |
|
|
293
|
+
"""
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
Feature: Web steps
|
|
2
|
+
|
|
3
|
+
Scenario: /^the "([^"]*)" field should (not )?contain "([^"]*)"$/
|
|
4
|
+
When I go to "/forms/form1"
|
|
5
|
+
Then the "Text control" field should contain "Text control value"
|
|
6
|
+
Then the "Select control" field should contain "Label 2"
|
|
7
|
+
Then the "Select control without selection" field should contain "Label 1"
|
|
8
|
+
Then the "Textarea control" field should contain "Textarea control value"
|
|
9
|
+
Then the "Empty control" field should contain ""
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Scenario: /^the "([^"]*)" field should (not )?contain:/
|
|
13
|
+
When I go to "/forms/form2"
|
|
14
|
+
Then the "Text control" field should contain:
|
|
15
|
+
"""
|
|
16
|
+
Text control value
|
|
17
|
+
"""
|
|
18
|
+
Then the "Textarea control" field should contain:
|
|
19
|
+
"""
|
|
20
|
+
Textarea control line 1
|
|
21
|
+
Textarea control line 2
|
|
22
|
+
"""
|
|
23
|
+
Then the "Empty textarea control" field should contain:
|
|
24
|
+
"""
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
Scenario: /^I should see a form with the following values:$/
|
|
29
|
+
When I go to "/forms/form1"
|
|
30
|
+
Then I should see a form with the following values:
|
|
31
|
+
| Text control | Text control value |
|
|
32
|
+
| Select control | Label 2 |
|
|
33
|
+
| Select control without selection | Label 1 |
|
|
34
|
+
| Textarea control | Textarea control value |
|
|
35
|
+
| Empty control | |
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
Scenario: /^"([^"]*)" should( not)? be selected for "([^"]*)"$/
|
|
39
|
+
When I go to "/forms/form1"
|
|
40
|
+
Then "Label 2" should be selected for "Select control"
|
|
41
|
+
But "Label 1" should not be selected for "Select control"
|
|
42
|
+
And "Label 1" should be selected for "Select control without selection"
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
Scenario: /^nothing should be selected for "([^"]*)"$/
|
|
46
|
+
When I go to "/forms/form1"
|
|
47
|
+
Then nothing should be selected for "Select control with blank option"
|
|
48
|
+
Then nothing should be selected for "Select control with blank selection"
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
Scenario: /^I go back$/
|
|
52
|
+
Given I go to "/static_pages/link_to_home"
|
|
53
|
+
And I follow "Home"
|
|
54
|
+
|
|
55
|
+
When I go back
|
|
56
|
+
Then I should be on "/static_pages/link_to_home"
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
Scenario: /^the "([^"]*)" checkbox should( not)? be checked$/
|
|
60
|
+
When I go to "/forms/checkbox_form"
|
|
61
|
+
Then the "Checked" checkbox should be checked
|
|
62
|
+
And the "Unchecked" checkbox should not be checked
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
@javascript
|
|
66
|
+
Scenario: /^I click on "([^\"]+)"$/
|
|
67
|
+
When I go to "/static_pages/click_on"
|
|
68
|
+
And I click on "Nested"
|
|
69
|
+
# See that it clicks the innermost element with that text
|
|
70
|
+
Then I should see "You clicked on .inner"
|
|
71
|
+
When I click on "Button"
|
|
72
|
+
Then I should see "You clicked on .button"
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
@javascript
|
|
76
|
+
Scenario: /^I click on the element "([^\"]+)"$/
|
|
77
|
+
When I go to "/static_pages/click_on"
|
|
78
|
+
And I click on the element ".inner"
|
|
79
|
+
Then I should see "You clicked on .inner"
|
|
80
|
+
When I click on the element ".button"
|
|
81
|
+
Then I should see "You clicked on .button"
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
@javascript
|
|
85
|
+
Scenario: /^I click on the element for .*?$/
|
|
86
|
+
When I go to "/static_pages/click_on"
|
|
87
|
+
And I click on the element for a panel
|
|
88
|
+
Then I should see "You clicked on .panel"
|
|
89
|
+
When I click on the element for the timeline
|
|
90
|
+
Then I should see "You clicked on .timeline"
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
Scenario: /^the "(.*?)" select should( not)? be sorted$/
|
|
94
|
+
When I go to "/forms/select_fields"
|
|
95
|
+
Then the "sorted" select should be sorted
|
|
96
|
+
But the "unsorted" select should not be sorted
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
Scenario: /^Then (the tag )?"..." should( not)? be visible$/
|
|
100
|
+
When I go to "/static_pages/visibility"
|
|
101
|
+
Then "hidden ümläüt" should not be visible
|
|
102
|
+
And "visible ümläüt" should be visible
|
|
103
|
+
And a hidden string with quotes should not be visible
|
|
104
|
+
And a visible string with quotes should be visible
|
|
105
|
+
And "hidden ümläüt" should be hidden
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@javascript
|
|
109
|
+
Scenario: /^Then (the tag )?"..." should( not)? be visible$/ with javascript
|
|
110
|
+
When I go to "/static_pages/visibility"
|
|
111
|
+
Then "hidden ümläüt" should not be visible
|
|
112
|
+
And "visible ümläüt" should be visible
|
|
113
|
+
And a hidden string with quotes should not be visible
|
|
114
|
+
And a visible string with quotes should be visible
|
|
115
|
+
And "hidden ümläüt" should be hidden
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
Scenario: /^the "([^\"]*)" field should( not)? be visible$/
|
|
119
|
+
When I go to "/static_pages/visibility"
|
|
120
|
+
Then the "Visible field" field should be visible
|
|
121
|
+
But the "Hidden field" field should not be visible
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
@javascript
|
|
125
|
+
Scenario: /^the "([^\"]*)" field should( not)? be visible$/ with Javascript
|
|
126
|
+
When I go to "/static_pages/visibility"
|
|
127
|
+
Then the "Visible field" field should be visible
|
|
128
|
+
But the "Hidden field" field should not be visible
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
Scenario: /^I should (not )?see (?:|a|an |the )(.*?) element$/
|
|
132
|
+
When I go to "/static_pages/see_element"
|
|
133
|
+
Then I should see an element ".panel"
|
|
134
|
+
And I should see the element ".panel"
|
|
135
|
+
And I should see an element for a panel
|
|
136
|
+
And I should see the element for a panel
|
|
137
|
+
But I should not see an element ".timeline"
|
|
138
|
+
But I should not see the element ".timeline"
|
|
139
|
+
And I should not see an element for the timeline
|
|
140
|
+
And I should not see the element for the timeline
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
Scenario: /^(.*) within (.*[^:])$/
|
|
144
|
+
When I go to "/static_pages/within"
|
|
145
|
+
Then I should see an element ".child1" within ".container1"
|
|
146
|
+
But I should not see an element ".child1" within ".container2"
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
Scenario: /^(.*) within (.*[^:])$/ with a Capybara::Node::Element
|
|
150
|
+
When I go to "/static_pages/within"
|
|
151
|
+
Then I should see "All" within the table row containing "Admin"
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
Scenario: /^I perform basic authentication as "([^\"]*)\/([^\"]*)" and go to (.*)$/
|
|
155
|
+
When I go to "/authenticated/page"
|
|
156
|
+
Then I should see "Access denied"
|
|
157
|
+
When I perform basic authentication as "user/password" and go to "/authenticated/page"
|
|
158
|
+
Then I should see "Action reached"
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
@javascript
|
|
162
|
+
Scenario: /^I perform basic authentication as "([^\"]*)\/([^\"]*)" and go to (.*)$/ with Javascript
|
|
163
|
+
When I perform basic authentication as "user/password" and go to "/authenticated/page"
|
|
164
|
+
Then I should see "Action reached"
|
|
@@ -9,6 +9,7 @@ Feature: Test Spreewald's email steps
|
|
|
9
9
|
Then the following step should fail:
|
|
10
10
|
| no email should have been sent |
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
Scenario: /^I should see "([^\"]*)" in the e?mail$/
|
|
13
14
|
When I go to "/emails/send_email"
|
|
14
15
|
Then the following step should succeed:
|
|
@@ -16,6 +17,7 @@ Feature: Test Spreewald's email steps
|
|
|
16
17
|
But the following step should fail:
|
|
17
18
|
| I should see "XYZ" in the email |
|
|
18
19
|
|
|
20
|
+
|
|
19
21
|
Scenario: /^(an|no) e?mail should have been sent with:$/
|
|
20
22
|
When I go to "/emails/send_email"
|
|
21
23
|
|
|
@@ -8,6 +8,7 @@ Feature: Web steps
|
|
|
8
8
|
Then the "Textarea control" field should contain "Textarea control value"
|
|
9
9
|
Then the "Empty control" field should contain ""
|
|
10
10
|
|
|
11
|
+
|
|
11
12
|
Scenario: /^the "([^"]*)" field should (not )?contain:/
|
|
12
13
|
When I go to "/forms/form2"
|
|
13
14
|
Then the "Text control" field should contain:
|
|
@@ -23,6 +24,7 @@ Feature: Web steps
|
|
|
23
24
|
"""
|
|
24
25
|
"""
|
|
25
26
|
|
|
27
|
+
|
|
26
28
|
Scenario: /^I should see a form with the following values:$/
|
|
27
29
|
When I go to "/forms/form1"
|
|
28
30
|
Then I should see a form with the following values:
|
|
@@ -69,6 +71,7 @@ Feature: Web steps
|
|
|
69
71
|
When I click on "Button"
|
|
70
72
|
Then I should see "You clicked on .button"
|
|
71
73
|
|
|
74
|
+
|
|
72
75
|
@javascript
|
|
73
76
|
Scenario: /^I click on the element "([^\"]+)"$/
|
|
74
77
|
When I go to "/static_pages/click_on"
|
|
@@ -77,6 +80,7 @@ Feature: Web steps
|
|
|
77
80
|
When I click on the element ".button"
|
|
78
81
|
Then I should see "You clicked on .button"
|
|
79
82
|
|
|
83
|
+
|
|
80
84
|
@javascript
|
|
81
85
|
Scenario: /^I click on the element for .*?$/
|
|
82
86
|
When I go to "/static_pages/click_on"
|
|
@@ -85,6 +89,7 @@ Feature: Web steps
|
|
|
85
89
|
When I click on the element for the timeline
|
|
86
90
|
Then I should see "You clicked on .timeline"
|
|
87
91
|
|
|
92
|
+
|
|
88
93
|
Scenario: /^the "(.*?)" select should( not)? be sorted$/
|
|
89
94
|
When I go to "/forms/select_fields"
|
|
90
95
|
Then the "sorted" select should be sorted
|
|
@@ -99,6 +104,7 @@ Feature: Web steps
|
|
|
99
104
|
And a visible string with quotes should be visible
|
|
100
105
|
And "hidden ümläüt" should be hidden
|
|
101
106
|
|
|
107
|
+
|
|
102
108
|
@javascript
|
|
103
109
|
Scenario: /^Then (the tag )?"..." should( not)? be visible$/ with javascript
|
|
104
110
|
When I go to "/static_pages/visibility"
|
|
@@ -108,17 +114,20 @@ Feature: Web steps
|
|
|
108
114
|
And a visible string with quotes should be visible
|
|
109
115
|
And "hidden ümläüt" should be hidden
|
|
110
116
|
|
|
117
|
+
|
|
111
118
|
Scenario: /^the "([^\"]*)" field should( not)? be visible$/
|
|
112
119
|
When I go to "/static_pages/visibility"
|
|
113
120
|
Then the "Visible field" field should be visible
|
|
114
121
|
But the "Hidden field" field should not be visible
|
|
115
122
|
|
|
123
|
+
|
|
116
124
|
@javascript
|
|
117
125
|
Scenario: /^the "([^\"]*)" field should( not)? be visible$/ with Javascript
|
|
118
126
|
When I go to "/static_pages/visibility"
|
|
119
127
|
Then the "Visible field" field should be visible
|
|
120
128
|
But the "Hidden field" field should not be visible
|
|
121
129
|
|
|
130
|
+
|
|
122
131
|
Scenario: /^I should (not )?see (?:|a|an |the )(.*?) element$/
|
|
123
132
|
When I go to "/static_pages/see_element"
|
|
124
133
|
Then I should see an element ".panel"
|
|
@@ -130,23 +139,26 @@ Feature: Web steps
|
|
|
130
139
|
And I should not see an element for the timeline
|
|
131
140
|
And I should not see the element for the timeline
|
|
132
141
|
|
|
142
|
+
|
|
133
143
|
Scenario: /^(.*) within (.*[^:])$/
|
|
134
144
|
When I go to "/static_pages/within"
|
|
135
145
|
Then I should see an element ".child1" within ".container1"
|
|
136
146
|
But I should not see an element ".child1" within ".container2"
|
|
137
147
|
|
|
148
|
+
|
|
138
149
|
Scenario: /^(.*) within (.*[^:])$/ with a Capybara::Node::Element
|
|
139
150
|
When I go to "/static_pages/within"
|
|
140
151
|
Then I should see "All" within the table row containing "Admin"
|
|
141
152
|
|
|
153
|
+
|
|
142
154
|
Scenario: /^I perform basic authentication as "([^\"]*)\/([^\"]*)" and go to (.*)$/
|
|
143
155
|
When I go to "/authenticated/page"
|
|
144
156
|
Then I should see "Access denied"
|
|
145
157
|
When I perform basic authentication as "user/password" and go to "/authenticated/page"
|
|
146
158
|
Then I should see "Action reached"
|
|
147
159
|
|
|
160
|
+
|
|
148
161
|
@javascript
|
|
149
162
|
Scenario: /^I perform basic authentication as "([^\"]*)\/([^\"]*)" and go to (.*)$/ with Javascript
|
|
150
163
|
When I perform basic authentication as "user/password" and go to "/authenticated/page"
|
|
151
164
|
Then I should see "Action reached"
|
|
152
|
-
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spreewald
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.12.
|
|
4
|
+
version: 1.12.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tobias Kraze
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-03-
|
|
11
|
+
date: 2019-03-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cucumber
|
|
@@ -181,7 +181,6 @@ files:
|
|
|
181
181
|
- tests/rails-3_capybara-1/Gemfile
|
|
182
182
|
- tests/rails-3_capybara-1/Gemfile.lock
|
|
183
183
|
- tests/rails-3_capybara-1/Rakefile
|
|
184
|
-
- tests/rails-3_capybara-1/app
|
|
185
184
|
- tests/rails-3_capybara-1/config/application.rb
|
|
186
185
|
- tests/rails-3_capybara-1/config/boot.rb
|
|
187
186
|
- tests/rails-3_capybara-1/config/cucumber.yml
|
|
@@ -193,23 +192,15 @@ files:
|
|
|
193
192
|
- tests/rails-3_capybara-1/config/initializers/secret_token.rb
|
|
194
193
|
- tests/rails-3_capybara-1/config/initializers/session_store.rb
|
|
195
194
|
- tests/rails-3_capybara-1/config/routes.rb
|
|
196
|
-
- tests/rails-3_capybara-1/db
|
|
197
|
-
- tests/rails-3_capybara-1/features/shared
|
|
198
195
|
- tests/rails-3_capybara-1/features/support/env.rb
|
|
199
196
|
- tests/rails-3_capybara-1/features/support/paths.rb
|
|
200
197
|
- tests/rails-3_capybara-1/features/support/selectors.rb
|
|
201
198
|
- tests/rails-3_capybara-1/features/support/selenium.rb
|
|
202
|
-
- tests/rails-3_capybara-1/public
|
|
203
199
|
- tests/rails-3_capybara-2/.ruby-version
|
|
204
200
|
- tests/rails-3_capybara-2/Gemfile
|
|
205
201
|
- tests/rails-3_capybara-2/Gemfile.lock
|
|
206
202
|
- tests/rails-3_capybara-2/Rakefile
|
|
207
|
-
- tests/rails-3_capybara-2/app
|
|
208
|
-
- tests/rails-3_capybara-2/config
|
|
209
203
|
- tests/rails-3_capybara-2/config.ru
|
|
210
|
-
- tests/rails-3_capybara-2/db
|
|
211
|
-
- tests/rails-3_capybara-2/features
|
|
212
|
-
- tests/rails-3_capybara-2/public
|
|
213
204
|
- tests/rails-3_capybara-2/script/cucumber
|
|
214
205
|
- tests/rails-3_capybara-2/script/rails
|
|
215
206
|
- tests/rails-4_capybara-3/.gitignore
|
|
@@ -217,7 +208,6 @@ files:
|
|
|
217
208
|
- tests/rails-4_capybara-3/Gemfile.lock
|
|
218
209
|
- tests/rails-4_capybara-3/README.rdoc
|
|
219
210
|
- tests/rails-4_capybara-3/Rakefile
|
|
220
|
-
- tests/rails-4_capybara-3/app
|
|
221
211
|
- tests/rails-4_capybara-3/bin/bundle
|
|
222
212
|
- tests/rails-4_capybara-3/bin/rails
|
|
223
213
|
- tests/rails-4_capybara-3/bin/rake
|
|
@@ -242,7 +232,6 @@ files:
|
|
|
242
232
|
- tests/rails-4_capybara-3/config/locales/en.yml
|
|
243
233
|
- tests/rails-4_capybara-3/config/routes.rb
|
|
244
234
|
- tests/rails-4_capybara-3/config/secrets.yml
|
|
245
|
-
- tests/rails-4_capybara-3/db
|
|
246
235
|
- tests/rails-4_capybara-3/features/email_steps.feature
|
|
247
236
|
- tests/rails-4_capybara-3/features/overriding.feature
|
|
248
237
|
- tests/rails-4_capybara-3/features/step_definitions/overriding_steps.rb
|
|
@@ -316,7 +305,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
316
305
|
version: '0'
|
|
317
306
|
requirements: []
|
|
318
307
|
rubyforge_project:
|
|
319
|
-
rubygems_version: 2.
|
|
308
|
+
rubygems_version: 2.2.5
|
|
320
309
|
signing_key:
|
|
321
310
|
specification_version: 4
|
|
322
311
|
summary: Collection of useful cucumber steps.
|
|
@@ -325,7 +314,6 @@ test_files:
|
|
|
325
314
|
- tests/rails-3_capybara-1/Gemfile
|
|
326
315
|
- tests/rails-3_capybara-1/Gemfile.lock
|
|
327
316
|
- tests/rails-3_capybara-1/Rakefile
|
|
328
|
-
- tests/rails-3_capybara-1/app
|
|
329
317
|
- tests/rails-3_capybara-1/config/application.rb
|
|
330
318
|
- tests/rails-3_capybara-1/config/boot.rb
|
|
331
319
|
- tests/rails-3_capybara-1/config/cucumber.yml
|
|
@@ -337,23 +325,15 @@ test_files:
|
|
|
337
325
|
- tests/rails-3_capybara-1/config/initializers/secret_token.rb
|
|
338
326
|
- tests/rails-3_capybara-1/config/initializers/session_store.rb
|
|
339
327
|
- tests/rails-3_capybara-1/config/routes.rb
|
|
340
|
-
- tests/rails-3_capybara-1/db
|
|
341
|
-
- tests/rails-3_capybara-1/features/shared
|
|
342
328
|
- tests/rails-3_capybara-1/features/support/env.rb
|
|
343
329
|
- tests/rails-3_capybara-1/features/support/paths.rb
|
|
344
330
|
- tests/rails-3_capybara-1/features/support/selectors.rb
|
|
345
331
|
- tests/rails-3_capybara-1/features/support/selenium.rb
|
|
346
|
-
- tests/rails-3_capybara-1/public
|
|
347
332
|
- tests/rails-3_capybara-2/.ruby-version
|
|
348
333
|
- tests/rails-3_capybara-2/Gemfile
|
|
349
334
|
- tests/rails-3_capybara-2/Gemfile.lock
|
|
350
335
|
- tests/rails-3_capybara-2/Rakefile
|
|
351
|
-
- tests/rails-3_capybara-2/app
|
|
352
|
-
- tests/rails-3_capybara-2/config
|
|
353
336
|
- tests/rails-3_capybara-2/config.ru
|
|
354
|
-
- tests/rails-3_capybara-2/db
|
|
355
|
-
- tests/rails-3_capybara-2/features
|
|
356
|
-
- tests/rails-3_capybara-2/public
|
|
357
337
|
- tests/rails-3_capybara-2/script/cucumber
|
|
358
338
|
- tests/rails-3_capybara-2/script/rails
|
|
359
339
|
- tests/rails-4_capybara-3/.gitignore
|
|
@@ -361,7 +341,6 @@ test_files:
|
|
|
361
341
|
- tests/rails-4_capybara-3/Gemfile.lock
|
|
362
342
|
- tests/rails-4_capybara-3/README.rdoc
|
|
363
343
|
- tests/rails-4_capybara-3/Rakefile
|
|
364
|
-
- tests/rails-4_capybara-3/app
|
|
365
344
|
- tests/rails-4_capybara-3/bin/bundle
|
|
366
345
|
- tests/rails-4_capybara-3/bin/rails
|
|
367
346
|
- tests/rails-4_capybara-3/bin/rake
|
|
@@ -386,7 +365,6 @@ test_files:
|
|
|
386
365
|
- tests/rails-4_capybara-3/config/locales/en.yml
|
|
387
366
|
- tests/rails-4_capybara-3/config/routes.rb
|
|
388
367
|
- tests/rails-4_capybara-3/config/secrets.yml
|
|
389
|
-
- tests/rails-4_capybara-3/db
|
|
390
368
|
- tests/rails-4_capybara-3/features/email_steps.feature
|
|
391
369
|
- tests/rails-4_capybara-3/features/overriding.feature
|
|
392
370
|
- tests/rails-4_capybara-3/features/step_definitions/overriding_steps.rb
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-1/../shared/app
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-1/config/../../shared/config/cucumber.yml
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-1/config/../../shared/config/database.yml
|
data/tests/rails-3_capybara-1/db
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-1/../shared/db
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-1/features/../../shared/features/shared
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-1/features/support/../../../shared/features/support/paths.rb
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-1/features/support/../../../shared/features/support/selectors.rb
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-1/../shared/public
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-2/../rails-3_capybara-1/Rakefile
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-2/../rails-3_capybara-1/app
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-2/../rails-3_capybara-1/config
|
data/tests/rails-3_capybara-2/db
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-2/../rails-3_capybara-1/db
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-2/../rails-3_capybara-1/features/
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-3_capybara-2/../rails-3_capybara-1/public
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-4_capybara-3/../shared/app/
|
data/tests/rails-4_capybara-3/db
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-4_capybara-3/../shared/db/
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-4_capybara-3/features/../../shared/features/shared/email_steps.feature
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-4_capybara-3/features/../../shared/features/shared/overriding.feature
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-4_capybara-3/features/step_definitions/../../../shared/features/shared/step_definitions/
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-4_capybara-3/features/step_definitions/../../../shared/features/shared/step_definitions/
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-4_capybara-3/features/support/../../../shared/features/support/paths.rb
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-4_capybara-3/features/support/../../../shared/features/support/selectors.rb
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-4_capybara-3/features/../../shared/features/shared/table_steps.feature
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tests/rails-4_capybara-3/features/../../shared/features/shared/web_steps.feature
|