spreewald 1.12.4 → 1.12.5
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 +4 -1
- data/README.md +4 -4
- data/lib/spreewald/development_steps.rb +3 -3
- data/lib/spreewald_support/version.rb +1 -1
- data/tests/rails-3_capybara-1/Gemfile.lock +1 -1
- data/tests/rails-3_capybara-1/app +1 -0
- data/tests/rails-3_capybara-1/config/cucumber.yml +1 -0
- data/tests/rails-3_capybara-1/config/database.yml +1 -0
- data/tests/rails-3_capybara-1/db +1 -0
- data/tests/rails-3_capybara-1/features/shared +1 -0
- data/tests/rails-3_capybara-1/features/support/paths.rb +1 -0
- data/tests/rails-3_capybara-1/features/support/selectors.rb +1 -0
- data/tests/rails-3_capybara-1/public +1 -0
- data/tests/rails-3_capybara-2/Gemfile.lock +1 -1
- data/tests/rails-3_capybara-2/Rakefile +1 -0
- data/tests/rails-3_capybara-2/app +1 -0
- data/tests/rails-3_capybara-2/config +1 -0
- data/tests/rails-3_capybara-2/db +1 -0
- data/tests/rails-3_capybara-2/features +1 -0
- data/tests/rails-3_capybara-2/public +1 -0
- data/tests/rails-4_capybara-3/Gemfile.lock +1 -1
- data/tests/rails-4_capybara-3/app +1 -0
- data/tests/rails-4_capybara-3/config/cucumber.yml +2 -2
- data/tests/rails-4_capybara-3/db +1 -0
- data/tests/rails-4_capybara-3/features/development_steps.feature +1 -0
- data/tests/rails-4_capybara-3/features/email_steps.feature +1 -0
- data/tests/rails-4_capybara-3/features/overriding.feature +1 -0
- data/tests/rails-4_capybara-3/features/step_definitions/overriding_steps.rb +1 -0
- data/tests/rails-4_capybara-3/features/step_definitions/test_steps.rb +1 -0
- data/tests/rails-4_capybara-3/features/support/paths.rb +1 -0
- data/tests/rails-4_capybara-3/features/support/selectors.rb +1 -0
- data/tests/rails-4_capybara-3/features/table_steps.feature +1 -0
- data/tests/rails-4_capybara-3/features/web_steps.feature +1 -0
- data/tests/shared/features/shared/development_steps.feature +8 -0
- metadata +29 -3
- data/tests/rails-3_capybara-1/config/cucumber.yml +0 -2
- data/tests/rails-3_capybara-1/config/database.yml +0 -7
- data/tests/rails-3_capybara-1/features/support/paths.rb +0 -16
- data/tests/rails-3_capybara-1/features/support/selectors.rb +0 -46
- data/tests/rails-3_capybara-2/Rakefile +0 -18
- data/tests/rails-4_capybara-3/features/email_steps.feature +0 -133
- data/tests/rails-4_capybara-3/features/overriding.feature +0 -5
- data/tests/rails-4_capybara-3/features/step_definitions/overriding_steps.rb +0 -3
- data/tests/rails-4_capybara-3/features/step_definitions/test_steps.rb +0 -43
- data/tests/rails-4_capybara-3/features/support/paths.rb +0 -16
- data/tests/rails-4_capybara-3/features/support/selectors.rb +0 -46
- data/tests/rails-4_capybara-3/features/table_steps.feature +0 -293
- data/tests/rails-4_capybara-3/features/web_steps.feature +0 -169
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f95729608596094ed1ae6bdcff3515b239a078f4
|
|
4
|
+
data.tar.gz: 44b7f01fc497d11518cd74e0560c339b5ede46dc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a5832ec111b646850eaacca4a174690d51c0c52effc5ca9a73545bbbb58861cb255abb429ce744131edfe614b1ab4884819d25025e5c7291e2cf42050926c037
|
|
7
|
+
data.tar.gz: '08809ced9f144f3781d8de43148909e6751057d06cb43efc81f335c87ed5c3d0c8b8397e7684394ce66d837fa3361660f7321eb8d9eeb7cec3fb2fbf2b79b485'
|
data/CHANGELOG.md
CHANGED
|
@@ -3,8 +3,11 @@ All notable changes to this project will be documented in this file.
|
|
|
3
3
|
|
|
4
4
|
This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
5
5
|
|
|
6
|
+
## 1.12.5
|
|
7
|
+
The "it should work" step now takes an optional reason.
|
|
8
|
+
|
|
6
9
|
## 1.12.4
|
|
7
|
-
The word "within" can now be used in arguments for other steps without causing errors (Issue #53)
|
|
10
|
+
The word "within" can now be used in arguments for other steps without causing errors ([Issue #53](https://github.com/makandra/spreewald/issues/80))
|
|
8
11
|
|
|
9
12
|
## 1.12.3
|
|
10
13
|
Prevent wall of warnings when `Then console` is used multiple times in on test run ([issue](https://github.com/makandra/spreewald/issues/80))
|
data/README.md
CHANGED
|
@@ -114,9 +114,9 @@ the step definitions.
|
|
|
114
114
|
|
|
115
115
|
### development_steps.rb
|
|
116
116
|
|
|
117
|
-
* **Then it should work
|
|
117
|
+
* **Then it should work...?**
|
|
118
118
|
|
|
119
|
-
Marks scenario as pending
|
|
119
|
+
Marks scenario as pending, optionally explained with a reason.
|
|
120
120
|
|
|
121
121
|
|
|
122
122
|
* **Then console**
|
|
@@ -418,7 +418,7 @@ deprecation notice. Decide for yourself whether you want to use them:
|
|
|
418
418
|
* **Then the "..." field should have no error**
|
|
419
419
|
|
|
420
420
|
|
|
421
|
-
* **Then the "..." checkbox should( not)? be checked
|
|
421
|
+
* **Then the "..." checkbox should( not)? be checked( and disabled)?**
|
|
422
422
|
|
|
423
423
|
|
|
424
424
|
* **Then the radio button "..." should( not)? be (checked|selected)**
|
|
@@ -634,7 +634,7 @@ deprecation notice. Decide for yourself whether you want to use them:
|
|
|
634
634
|
| Beta Group |
|
|
635
635
|
|
|
636
636
|
|
|
637
|
-
* **Then the "..." (field|button) should( not)? be disabled**
|
|
637
|
+
* **Then the "..." (field|button|checkbox) should( not)? be disabled**
|
|
638
638
|
|
|
639
639
|
Tests that an input or button with the given label is disabled.
|
|
640
640
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-1/../shared/app
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-1/config/../../shared/config/cucumber.yml
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-1/config/../../shared/config/database.yml
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-1/../shared/db
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-1/features/../../shared/features/shared
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-1/features/support/../../../shared/features/support/paths.rb
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-1/features/support/../../../shared/features/support/selectors.rb
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-1/../shared/public
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-2/../rails-3_capybara-1/Rakefile
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-2/../rails-3_capybara-1/app
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-2/../rails-3_capybara-1/config
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-2/../rails-3_capybara-1/db
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-2/../rails-3_capybara-1/features/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-3_capybara-2/../rails-3_capybara-1/public
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-4_capybara-3/../shared/app/
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<%
|
|
2
2
|
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
|
|
3
3
|
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
|
|
4
|
-
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags 'not @wip'"
|
|
4
|
+
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --no-strict-pending --tags 'not @wip'"
|
|
5
5
|
%>
|
|
6
6
|
default: <%= std_opts %> features
|
|
7
7
|
wip: --tags @wip:3 --wip features
|
|
8
|
-
rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags 'not @wip'
|
|
8
|
+
rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --no-strict-pending --tags 'not @wip'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-4_capybara-3/../shared/db/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-4_capybara-3/features/../../shared/features/shared/development_steps.feature
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-4_capybara-3/features/../../shared/features/shared/email_steps.feature
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-4_capybara-3/features/../../shared/features/shared/overriding.feature
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-4_capybara-3/features/step_definitions/../../../shared/features/shared/step_definitions/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-4_capybara-3/features/step_definitions/../../../shared/features/shared/step_definitions/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-4_capybara-3/features/support/../../../shared/features/support/paths.rb
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-4_capybara-3/features/support/../../../shared/features/support/selectors.rb
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-4_capybara-3/features/../../shared/features/shared/table_steps.feature
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tests/rails-4_capybara-3/features/../../shared/features/shared/web_steps.feature
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Feature: Development steps
|
|
2
|
+
|
|
3
|
+
Scenario: /^it should work(.+?)?$/ (without a reason)
|
|
4
|
+
Then it should work
|
|
5
|
+
|
|
6
|
+
Scenario: /^it should work(.+?)?$/ (with a given reason)
|
|
7
|
+
Then it should work once the blocker described here was fulfilled. (Feature should be pending)
|
|
8
|
+
|
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.5
|
|
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-04-
|
|
11
|
+
date: 2019-04-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cucumber
|
|
@@ -181,6 +181,7 @@ 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
|
|
184
185
|
- tests/rails-3_capybara-1/config/application.rb
|
|
185
186
|
- tests/rails-3_capybara-1/config/boot.rb
|
|
186
187
|
- tests/rails-3_capybara-1/config/cucumber.yml
|
|
@@ -192,15 +193,23 @@ files:
|
|
|
192
193
|
- tests/rails-3_capybara-1/config/initializers/secret_token.rb
|
|
193
194
|
- tests/rails-3_capybara-1/config/initializers/session_store.rb
|
|
194
195
|
- tests/rails-3_capybara-1/config/routes.rb
|
|
196
|
+
- tests/rails-3_capybara-1/db
|
|
197
|
+
- tests/rails-3_capybara-1/features/shared
|
|
195
198
|
- tests/rails-3_capybara-1/features/support/env.rb
|
|
196
199
|
- tests/rails-3_capybara-1/features/support/paths.rb
|
|
197
200
|
- tests/rails-3_capybara-1/features/support/selectors.rb
|
|
198
201
|
- tests/rails-3_capybara-1/features/support/selenium.rb
|
|
202
|
+
- tests/rails-3_capybara-1/public
|
|
199
203
|
- tests/rails-3_capybara-2/.ruby-version
|
|
200
204
|
- tests/rails-3_capybara-2/Gemfile
|
|
201
205
|
- tests/rails-3_capybara-2/Gemfile.lock
|
|
202
206
|
- tests/rails-3_capybara-2/Rakefile
|
|
207
|
+
- tests/rails-3_capybara-2/app
|
|
208
|
+
- tests/rails-3_capybara-2/config
|
|
203
209
|
- 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
|
|
204
213
|
- tests/rails-3_capybara-2/script/cucumber
|
|
205
214
|
- tests/rails-3_capybara-2/script/rails
|
|
206
215
|
- tests/rails-4_capybara-3/.gitignore
|
|
@@ -208,6 +217,7 @@ files:
|
|
|
208
217
|
- tests/rails-4_capybara-3/Gemfile.lock
|
|
209
218
|
- tests/rails-4_capybara-3/README.rdoc
|
|
210
219
|
- tests/rails-4_capybara-3/Rakefile
|
|
220
|
+
- tests/rails-4_capybara-3/app
|
|
211
221
|
- tests/rails-4_capybara-3/bin/bundle
|
|
212
222
|
- tests/rails-4_capybara-3/bin/rails
|
|
213
223
|
- tests/rails-4_capybara-3/bin/rake
|
|
@@ -232,6 +242,8 @@ files:
|
|
|
232
242
|
- tests/rails-4_capybara-3/config/locales/en.yml
|
|
233
243
|
- tests/rails-4_capybara-3/config/routes.rb
|
|
234
244
|
- tests/rails-4_capybara-3/config/secrets.yml
|
|
245
|
+
- tests/rails-4_capybara-3/db
|
|
246
|
+
- tests/rails-4_capybara-3/features/development_steps.feature
|
|
235
247
|
- tests/rails-4_capybara-3/features/email_steps.feature
|
|
236
248
|
- tests/rails-4_capybara-3/features/overriding.feature
|
|
237
249
|
- tests/rails-4_capybara-3/features/step_definitions/overriding_steps.rb
|
|
@@ -275,6 +287,7 @@ files:
|
|
|
275
287
|
- tests/shared/db/migrate/.gitignore
|
|
276
288
|
- tests/shared/db/schema.rb
|
|
277
289
|
- tests/shared/db/test.sqlite3
|
|
290
|
+
- tests/shared/features/shared/development_steps.feature
|
|
278
291
|
- tests/shared/features/shared/email_steps.feature
|
|
279
292
|
- tests/shared/features/shared/overriding.feature
|
|
280
293
|
- tests/shared/features/shared/step_definitions/overriding_steps.rb
|
|
@@ -305,7 +318,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
305
318
|
version: '0'
|
|
306
319
|
requirements: []
|
|
307
320
|
rubyforge_project:
|
|
308
|
-
rubygems_version: 2.
|
|
321
|
+
rubygems_version: 2.6.14.3
|
|
309
322
|
signing_key:
|
|
310
323
|
specification_version: 4
|
|
311
324
|
summary: Collection of useful cucumber steps.
|
|
@@ -314,6 +327,7 @@ test_files:
|
|
|
314
327
|
- tests/rails-3_capybara-1/Gemfile
|
|
315
328
|
- tests/rails-3_capybara-1/Gemfile.lock
|
|
316
329
|
- tests/rails-3_capybara-1/Rakefile
|
|
330
|
+
- tests/rails-3_capybara-1/app
|
|
317
331
|
- tests/rails-3_capybara-1/config/application.rb
|
|
318
332
|
- tests/rails-3_capybara-1/config/boot.rb
|
|
319
333
|
- tests/rails-3_capybara-1/config/cucumber.yml
|
|
@@ -325,15 +339,23 @@ test_files:
|
|
|
325
339
|
- tests/rails-3_capybara-1/config/initializers/secret_token.rb
|
|
326
340
|
- tests/rails-3_capybara-1/config/initializers/session_store.rb
|
|
327
341
|
- tests/rails-3_capybara-1/config/routes.rb
|
|
342
|
+
- tests/rails-3_capybara-1/db
|
|
343
|
+
- tests/rails-3_capybara-1/features/shared
|
|
328
344
|
- tests/rails-3_capybara-1/features/support/env.rb
|
|
329
345
|
- tests/rails-3_capybara-1/features/support/paths.rb
|
|
330
346
|
- tests/rails-3_capybara-1/features/support/selectors.rb
|
|
331
347
|
- tests/rails-3_capybara-1/features/support/selenium.rb
|
|
348
|
+
- tests/rails-3_capybara-1/public
|
|
332
349
|
- tests/rails-3_capybara-2/.ruby-version
|
|
333
350
|
- tests/rails-3_capybara-2/Gemfile
|
|
334
351
|
- tests/rails-3_capybara-2/Gemfile.lock
|
|
335
352
|
- tests/rails-3_capybara-2/Rakefile
|
|
353
|
+
- tests/rails-3_capybara-2/app
|
|
354
|
+
- tests/rails-3_capybara-2/config
|
|
336
355
|
- tests/rails-3_capybara-2/config.ru
|
|
356
|
+
- tests/rails-3_capybara-2/db
|
|
357
|
+
- tests/rails-3_capybara-2/features
|
|
358
|
+
- tests/rails-3_capybara-2/public
|
|
337
359
|
- tests/rails-3_capybara-2/script/cucumber
|
|
338
360
|
- tests/rails-3_capybara-2/script/rails
|
|
339
361
|
- tests/rails-4_capybara-3/.gitignore
|
|
@@ -341,6 +363,7 @@ test_files:
|
|
|
341
363
|
- tests/rails-4_capybara-3/Gemfile.lock
|
|
342
364
|
- tests/rails-4_capybara-3/README.rdoc
|
|
343
365
|
- tests/rails-4_capybara-3/Rakefile
|
|
366
|
+
- tests/rails-4_capybara-3/app
|
|
344
367
|
- tests/rails-4_capybara-3/bin/bundle
|
|
345
368
|
- tests/rails-4_capybara-3/bin/rails
|
|
346
369
|
- tests/rails-4_capybara-3/bin/rake
|
|
@@ -365,6 +388,8 @@ test_files:
|
|
|
365
388
|
- tests/rails-4_capybara-3/config/locales/en.yml
|
|
366
389
|
- tests/rails-4_capybara-3/config/routes.rb
|
|
367
390
|
- tests/rails-4_capybara-3/config/secrets.yml
|
|
391
|
+
- tests/rails-4_capybara-3/db
|
|
392
|
+
- tests/rails-4_capybara-3/features/development_steps.feature
|
|
368
393
|
- tests/rails-4_capybara-3/features/email_steps.feature
|
|
369
394
|
- tests/rails-4_capybara-3/features/overriding.feature
|
|
370
395
|
- tests/rails-4_capybara-3/features/step_definitions/overriding_steps.rb
|
|
@@ -408,6 +433,7 @@ test_files:
|
|
|
408
433
|
- tests/shared/db/migrate/.gitignore
|
|
409
434
|
- tests/shared/db/schema.rb
|
|
410
435
|
- tests/shared/db/test.sqlite3
|
|
436
|
+
- tests/shared/features/shared/development_steps.feature
|
|
411
437
|
- tests/shared/features/shared/email_steps.feature
|
|
412
438
|
- tests/shared/features/shared/overriding.feature
|
|
413
439
|
- tests/shared/features/shared/step_definitions/overriding_steps.rb
|
|
@@ -1,16 +0,0 @@
|
|
|
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)
|
|
@@ -1,46 +0,0 @@
|
|
|
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)
|
|
@@ -1,18 +0,0 @@
|
|
|
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
|
-
|
|
@@ -1,133 +0,0 @@
|
|
|
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
|
-
"""
|
|
@@ -1,43 +0,0 @@
|
|
|
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
|
|
@@ -1,16 +0,0 @@
|
|
|
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)
|
|
@@ -1,46 +0,0 @@
|
|
|
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)
|
|
@@ -1,293 +0,0 @@
|
|
|
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
|
-
"""
|
|
@@ -1,169 +0,0 @@
|
|
|
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: the /^(.*) within (.*[^:])$/ step should not be invoked when the word "within" is used in an argument for another step
|
|
155
|
-
When I go to "/static_pages/within"
|
|
156
|
-
Then I should see "He lives within a few miles of Augsburg"
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
Scenario: /^I perform basic authentication as "([^\"]*)\/([^\"]*)" and go to (.*)$/
|
|
160
|
-
When I go to "/authenticated/page"
|
|
161
|
-
Then I should see "Access denied"
|
|
162
|
-
When I perform basic authentication as "user/password" and go to "/authenticated/page"
|
|
163
|
-
Then I should see "Action reached"
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
@javascript
|
|
167
|
-
Scenario: /^I perform basic authentication as "([^\"]*)\/([^\"]*)" and go to (.*)$/ with Javascript
|
|
168
|
-
When I perform basic authentication as "user/password" and go to "/authenticated/page"
|
|
169
|
-
Then I should see "Action reached"
|