spreewald 0.9.0 → 0.9.1

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.
Files changed (35) hide show
  1. data/README.md +44 -71
  2. data/Rakefile +31 -20
  3. data/lib/spreewald/file_attachment_steps.rb +12 -19
  4. data/lib/spreewald/table_steps.rb +3 -5
  5. data/lib/spreewald/timecop_steps.rb +2 -1
  6. data/lib/spreewald/web_steps.rb +47 -34
  7. data/lib/spreewald_support/tolerance_for_selenium_sync_issues.rb +8 -1
  8. data/lib/spreewald_support/version.rb +1 -1
  9. data/support/documentation_generator.rb +6 -1
  10. data/tests/rails-2.3/Gemfile.lock +1 -1
  11. data/tests/rails-3.2/{Gemfile → capybara-1/Gemfile} +2 -2
  12. data/tests/rails-3.2/{Gemfile.lock → capybara-1/Gemfile.lock} +2 -2
  13. data/tests/rails-3.2/{Rakefile → capybara-1/Rakefile} +0 -0
  14. data/tests/rails-3.2/{config → capybara-1/config}/application.rb +0 -0
  15. data/tests/rails-3.2/{config → capybara-1/config}/boot.rb +0 -0
  16. data/tests/rails-3.2/{config → capybara-1/config}/database.yml +0 -0
  17. data/tests/rails-3.2/{config → capybara-1/config}/environment.rb +0 -0
  18. data/tests/rails-3.2/{config → capybara-1/config}/initializers/backtrace_silencers.rb +0 -0
  19. data/tests/rails-3.2/{config → capybara-1/config}/initializers/inflections.rb +0 -0
  20. data/tests/rails-3.2/{config → capybara-1/config}/initializers/mime_types.rb +0 -0
  21. data/tests/rails-3.2/{config → capybara-1/config}/initializers/secret_token.rb +0 -0
  22. data/tests/rails-3.2/{config → capybara-1/config}/initializers/session_store.rb +0 -0
  23. data/tests/rails-3.2/{config → capybara-1/config}/routes.rb +0 -0
  24. data/tests/rails-3.2/{features → capybara-1/features}/support/env.rb +3 -3
  25. data/tests/rails-3.2/{features → capybara-1/features}/support/paths.rb +0 -0
  26. data/tests/rails-3.2/capybara-2/Gemfile +14 -0
  27. data/tests/rails-3.2/capybara-2/Gemfile.lock +167 -0
  28. data/tests/rails-3.2/capybara-2/Rakefile +13 -0
  29. data/tests/rails-3.2/capybara-2/public/favicon.ico +1 -0
  30. data/tests/shared/app/controllers/static_pages_controller.rb +3 -0
  31. data/tests/shared/app/views/static_pages/home.html.haml +0 -0
  32. data/tests/shared/app/views/static_pages/link_to_home.html.haml +1 -0
  33. data/tests/shared/features/shared/web_steps.feature +17 -0
  34. metadata +48 -35
  35. data/.travis.yml +0 -13
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Spreewald [![Build Status](https://secure.travis-ci.org/makandra/spreewald.png?branch=master)](https://travis-ci.org/makandra/spreewald)
1
+ # Spreewald
2
2
 
3
3
  Spreewald is a collection of useful steps for cucumber. Feel free to fork.
4
4
 
@@ -22,7 +22,7 @@ Steps are grouped into a number of categories. You can pick and choose single ca
22
22
 
23
23
  require 'spreewald/email_steps'
24
24
 
25
- into your `support/env.rb`
25
+ into either your `support/env.rb` or a `step_defitions/spreewald_steps.rb`.
26
26
 
27
27
  Alternatively, you can require everything by doing
28
28
 
@@ -60,7 +60,7 @@ The "Steps" section is autogenerated by `rake update_readme` from comments in th
60
60
 
61
61
  ### development_steps.rb
62
62
 
63
- Marks scenario as pending
63
+
64
64
 
65
65
  * **Then it should work**
66
66
 
@@ -153,81 +153,44 @@ Marks scenario as pending
153
153
 
154
154
  ### file_attachment_steps.rb
155
155
 
156
- Attach a file
157
-
158
- Example:
159
-
160
- Company.new.logo = File.new…
161
-
162
- Given the file "…" was attached as logo to the company above
163
-
164
-
165
- Example:
166
-
167
- class Gallery
168
- has_many :images, :as => :owner
169
- end
170
-
171
- class Image
172
- belongs_to :owner, polymorphic: true
173
- end
174
-
175
- # so container = Image.new; container.file = File.new… , container.owner = object
176
-
177
- Given the file "…" was attached as Image/file to the company above
178
-
179
-
180
- Example:
181
-
182
- Set updated_at with
183
-
184
- Given … above at "2011-11-11 11:11"
185
156
 
186
157
 
187
158
  * **Given the file "..." was attached( as (.../)?...)? to the ... above( at "...")?**
188
159
 
189
- Attach a file
190
-
191
- Example:
192
-
193
- Company.new.logo = File.new…
160
+ Attach a file to the given ActiveRecord model's last record.
194
161
 
195
- Given the file "…" was attached as logo to the company above
162
+ Example (Company has a `file` attribute):
196
163
 
164
+ Given the file "image.png" was attached to the company above
197
165
 
198
- Example:
199
-
200
- class Gallery
201
- has_many :images, :as => :owner
202
- end
166
+ You may specify the attribute under which the file is stored …
203
167
 
204
- class Image
205
- belongs_to :owner, polymorphic: true
206
- end
168
+ Example (Company has a `logo` attribute):
207
169
 
208
- # so container = Image.new; container.file = File.new… , container.owner = object
170
+ Given the file "image.png" was attached as logo to the company above
209
171
 
210
- Given the file "…" was attached as Image/file to the company above
172
+ or both a container class and its attribute name
211
173
 
174
+ Example (Company has many `Image`s, `Image` has a `file` attribute)
212
175
 
213
- Example:
176
+ Given the file "image.png" was attached as Image/file to the company above
214
177
 
215
- Set updated_at with
178
+ To simultaneously set the `updated_at` timestamp:
216
179
 
217
- Given above at "2011-11-11 11:11"
180
+ Given the file "some_file" was attached to the profile above at "2011-11-11 11:11"
218
181
 
219
182
 
220
183
 
221
184
 
222
185
  ### table_steps.rb
223
186
 
224
- Check the content of tables in your HTML.
225
187
 
226
- See [this article](https://makandracards.com/makandra/763-cucumber-step-to-match-table-rows-with-capybara) for details.
227
188
 
228
189
  * **Then I should( not)? see a table with (exactly )?the following rows( in any order)?**
229
190
 
191
+ Check the content of tables in your HTML.
230
192
 
193
+ See [this article](https://makandracards.com/makandra/763-cucumber-step-to-match-table-rows-with-capybara) for details.
231
194
 
232
195
 
233
196
 
@@ -237,6 +200,7 @@ Steps to travel through time using [Timecop](https://github.com/jtrupiano/timeco
237
200
 
238
201
  See [this article](https://makandracards.com/makandra/1222-useful-cucumber-steps-to-travel-through-time-with-timecop) for details.
239
202
 
203
+
240
204
  * **When the (date|time) is "?(\d{4}-\d{2}-\d{2}( \d{1,2}:\d{2})?)"?**
241
205
 
242
206
  Example:
@@ -286,9 +250,11 @@ deprecation notice. Decide for yourself whether you want to use them:
286
250
  > * http://elabs.se/blog/15-you-re-cuking-it-wrong
287
251
 
288
252
 
253
+
289
254
  * **When ... within (.*[^:])**
290
255
 
291
- You can append 'within [selector]' to any other web step
256
+ You can append `within [selector]` to any other web step
257
+
292
258
  Example:
293
259
 
294
260
  Then I should see "some text" within ".page_body"
@@ -304,6 +270,11 @@ deprecation notice. Decide for yourself whether you want to use them:
304
270
 
305
271
 
306
272
 
273
+ * **Then I should be on ...**
274
+
275
+
276
+
277
+
307
278
  * **When I press "..."**
308
279
 
309
280
 
@@ -346,7 +317,7 @@ deprecation notice. Decide for yourself whether you want to use them:
346
317
 
347
318
  * **When I attach the file "..." to "..."**
348
319
 
349
-
320
+ Attach a file to a file upload form field
350
321
 
351
322
 
352
323
  * **Then I should see "..."**
@@ -397,7 +368,7 @@ deprecation notice. Decide for yourself whether you want to use them:
397
368
 
398
369
  * **Then the "..." field should have the error "..."**
399
370
 
400
- checks that an input field was wrapped with a validation error
371
+ Checks that an input field was wrapped with a validation error
401
372
 
402
373
 
403
374
  * **Then the "..." field should( not)? have an error**
@@ -415,11 +386,6 @@ deprecation notice. Decide for yourself whether you want to use them:
415
386
 
416
387
 
417
388
 
418
- * **Then I should be on ...**
419
-
420
-
421
-
422
-
423
389
  * **Then I should have the following query string:**
424
390
 
425
391
  Example:
@@ -428,36 +394,37 @@ deprecation notice. Decide for yourself whether you want to use them:
428
394
  | locale | de |
429
395
  | currency_code | EUR |
430
396
 
431
- Succeeds when the URL contains the given "locale" and "currency_code" params
397
+ Succeeds when the URL contains the given `locale` and `currency_code` params
432
398
 
433
399
 
434
400
  * **Then show me the page**
435
401
 
436
- Open the current Capybara page using the "launchy" gem
402
+ Open the current Capybara page using the `launchy` gem
437
403
 
438
404
 
439
405
  * **Then I should( not)? see a field "..."**
440
406
 
441
- checks for the existance of a input field (given its id or label)
407
+ Checks for the existance of an input field (given its id or label)
442
408
 
443
409
 
444
410
  * **Then I should( not)? see the (number|amount) ([\-\d,\.]+)( (.*?))?**
445
411
 
446
- Better way to test for a number of money amount than a `Then I should see`
412
+ Use this step to test for a number or money amount instead of a simple `Then I should see`
447
413
 
448
- Checks that there is unexpected minus sign, decimal places etc.
414
+ Checks for an unexpected minus sign, correct decimal places etc.
449
415
 
450
416
  See [here](https://makandracards.com/makandra/1225-test-that-a-number-or-money-amount-is-shown-with-cucumber) for details
451
417
 
452
418
 
453
419
  * **Then I should get a response with content-type "..."**
454
420
 
455
- Checks "Content-Type" HTTP header
421
+ Checks `Content-Type` HTTP header
456
422
 
457
423
 
458
424
  * **Then I should get a download with filename "..."**
459
425
 
460
- Checks "Content-Disposition" HTTP header
426
+ Checks `Content-Disposition` HTTP header
427
+
461
428
  Attention: Doesn't work with Selenium, see https://github.com/jnicklas/capybara#gotchas
462
429
 
463
430
 
@@ -478,7 +445,8 @@ deprecation notice. Decide for yourself whether you want to use them:
478
445
 
479
446
  * **Then I should see '([^']*)'**
480
447
 
481
- Like `Then I should see`, but with single instead of double quotes. In case the string contains quotes as well.
448
+ Like `Then I should see`, but with single instead of double quotes. In case
449
+ the expected string contains quotes as well.
482
450
 
483
451
 
484
452
  * **Then I should see "..." in the HTML**
@@ -505,7 +473,7 @@ deprecation notice. Decide for yourself whether you want to use them:
505
473
 
506
474
  Checks that an element is actually visible, also considering styles
507
475
  Within a selenium test, the browser is asked whether the element is really visible
508
- In a non-selenium test, we only check for ".hidden", ".invisible" or "style: display:none"
476
+ In a non-selenium test, we only check for `.hidden`, `.invisible` or `style: display:none`
509
477
 
510
478
  More details [here](https://makandracards.com/makandra/1049-capybara-check-that-a-page-element-is-hidden-via-css)
511
479
 
@@ -535,7 +503,7 @@ deprecation notice. Decide for yourself whether you want to use them:
535
503
 
536
504
  * **Then I should get a text response**
537
505
 
538
- Checks that the result has content type text/plain
506
+ Checks that the result has content type `text/plain`
539
507
 
540
508
 
541
509
  * **When I follow "..." inside any "..."**
@@ -616,3 +584,8 @@ deprecation notice. Decide for yourself whether you want to use them:
616
584
 
617
585
  More details [here](https://makandracards.com/makandra/971-perform-http-basic-authentication-in-cucumber).
618
586
 
587
+
588
+ * **When I go back**
589
+
590
+ Go to the previously viewed page.
591
+
data/Rakefile CHANGED
@@ -19,20 +19,9 @@ task :update_readme do
19
19
  File.open('README.md', 'w') { |f| f.write(readme) }
20
20
  end
21
21
 
22
- namespace :travis do
23
-
24
- desc 'Run tests in Travis CI'
25
- task :run => [:slimgems, 'all:bundle', 'all:features']
26
-
27
- desc 'Install slimgems'
28
- task :slimgems do
29
- sh 'gem install slimgems' unless modern_ruby?
30
- end
31
- end
32
-
33
22
  namespace :all do
34
23
 
35
- desc "Run tests on all test apps"
24
+ desc 'Run tests on all test apps'
36
25
  task :features do
37
26
  success = true
38
27
  for_each_directory_of('tests/**/Rakefile') do |directory|
@@ -43,8 +32,25 @@ namespace :all do
43
32
  end
44
33
  fail "Tests failed" unless success
45
34
  end
35
+
36
+ desc 'Run tests on several Ruby versions'
37
+ task :rubies do
38
+ rubies = %w[1.8.7 1.9.3 2.0.0]
39
+ success = true
40
+
41
+ if system('rvm -v 2>&1 > /dev/null') # rvm installed
42
+ rubies.each do |ruby|
43
+ announce 'Running features for Ruby ' + ruby, 2
44
+ success &= system "rvm #{ruby} do rake all:bundle all:features"
45
+ end
46
+ else
47
+ fail 'Currently only rvm is supported. Open Rakefile and add your Ruby version manager!'
48
+ end
49
+
50
+ fail "Tests failed" unless success
51
+ end
46
52
 
47
- desc "Bundle all test apps"
53
+ desc 'Bundle all test apps'
48
54
  task :bundle do
49
55
  for_each_directory_of('tests/**/Gemfile') do |directory|
50
56
  Bundler.with_clean_env do
@@ -52,21 +58,26 @@ namespace :all do
52
58
  end
53
59
  end
54
60
  end
55
- end
56
61
 
57
- def modern_ruby?
58
- Gem::Version.new(RUBY_VERSION) > Gem::Version.new('1.8.7')
59
62
  end
60
63
 
61
64
  def for_each_directory_of(path, &block)
62
65
  Dir[path].sort.each do |rakefile|
63
66
  directory = File.dirname(rakefile)
64
- puts '', "\033[44m#{directory}\033[0m", ''
65
-
66
- if modern_ruby? and directory.include?("rails-2.3")
67
- puts "Rails 2.3 Tests are skipped for Rubies younger than versions 1.8.7"
67
+ announce directory
68
+
69
+ if directory.include?('rails-2.3') and RUBY_VERSION != '1.8.7'
70
+ puts 'Rails 2.3 tests are only run for Ruby 1.8.7'
71
+ elsif directory.include?('capybara-2') and RUBY_VERSION == '1.8.7'
72
+ puts 'Capybara requires Ruby 1.9 or greater'
68
73
  else
69
74
  block.call(directory)
70
75
  end
71
76
  end
72
77
  end
78
+
79
+ def announce(text, level = 1)
80
+ space = "\n" * level
81
+ message = "# #{text}"
82
+ puts "\e[4;34m#{space + message}\e[0m" # blue underline
83
+ end
@@ -1,38 +1,31 @@
1
- # Attach a file
1
+ # Attach a file to the given model's last record.
2
2
  #
3
- # Example:
3
+ # Example (Company has a `file` attribute):
4
4
  #
5
- # Company.new.logo = File.new…
5
+ # Given the file "image.png" was attached to the company above
6
6
  #
7
- # Given the file "…" was attached as logo to the company above
7
+ # You may specify the attribute under which the file is stored …
8
8
  #
9
+ # Example (Company has a `logo` attribute):
9
10
  #
10
- # Example:
11
+ # Given the file "image.png" was attached as logo to the company above
11
12
  #
12
- # class Gallery
13
- # has_many :images, :as => :owner
14
- # end
13
+ # … or both a container class and its attribute name
15
14
  #
16
- # class Image
17
- # belongs_to :owner, polymorphic: true
18
- # end
15
+ # Example (Company has many `Image`s, `Image` has a `file` attribute)
19
16
  #
20
- # # so container = Image.new; container.file = File.new… , container.owner = object
17
+ # Given the file "image.png" was attached as Image/file to the company above
21
18
  #
22
- # Given the file "…" was attached as Image/file to the company above
19
+ # To simultaneously set the `updated_at` timestamp:
23
20
  #
24
- #
25
- # Example:
26
- #
27
- # Set updated_at with
28
- #
29
- # Given … above at "2011-11-11 11:11"
21
+ # Given the file "some_file" was attached to the profile above at "2011-11-11 11:11"
30
22
  #
31
23
  Given /^the file "([^"]*)" was attached(?: as (?:([^"]*)\/)?([^"]*))? to the ([^"]*) above(?: at "([^"]*)")?$/ do
32
24
  |path_to_file, container_name, relation_name, model_name, time_string|
33
25
 
34
26
  object = model_name.camelize.constantize.last
35
27
  time = Time.parse(time_string) if time_string.present?
28
+ relation_name ||= 'file'
36
29
 
37
30
  if container_name.present?
38
31
  container = container_name.camelize.constantize.new # Image.file = File... owner: gallery
@@ -1,9 +1,4 @@
1
1
  # coding: UTF-8
2
-
3
- # Check the content of tables in your HTML.
4
- #
5
- # See [this article](https://makandracards.com/makandra/763-cucumber-step-to-match-table-rows-with-capybara) for details.
6
-
7
2
 
8
3
  require 'spreewald_support/tolerance_for_selenium_sync_issues'
9
4
 
@@ -110,6 +105,9 @@ end
110
105
  World(TableStepsHelper)
111
106
 
112
107
 
108
+ # Check the content of tables in your HTML.
109
+ #
110
+ # See [this article](https://makandracards.com/makandra/763-cucumber-step-to-match-table-rows-with-capybara) for details.
113
111
  Then /^I should( not)? see a table with (exactly )?the following rows( in any order)?:?$/ do |negate, exactly, unordered, expected_table|
114
112
  patiently do
115
113
  document = Nokogiri::HTML(page.body)
@@ -2,8 +2,9 @@
2
2
 
3
3
 
4
4
  # Steps to travel through time using [Timecop](https://github.com/jtrupiano/timecop).
5
- #
5
+ #
6
6
  # See [this article](https://makandracards.com/makandra/1222-useful-cucumber-steps-to-travel-through-time-with-timecop) for details.
7
+ # FILE_COMMENT_END
7
8
 
8
9
 
9
10
  if defined?(Timecop)
@@ -22,6 +22,7 @@
22
22
  # > * http://dannorth.net/2011/01/31/whose-domain-is-it-anyway/
23
23
  # > * http://elabs.se/blog/15-you-re-cuking-it-wrong
24
24
  #
25
+ # FILE_COMMENT_END
25
26
 
26
27
  require 'spreewald_support/tolerance_for_selenium_sync_issues'
27
28
  require 'spreewald_support/path_selector_fallbacks'
@@ -31,7 +32,8 @@ require 'uri'
31
32
  require 'cgi'
32
33
 
33
34
 
34
- # You can append 'within [selector]' to any other web step
35
+ # You can append `within [selector]` to any other web step
36
+ #
35
37
  # Example:
36
38
  #
37
39
  # Then I should see "some text" within ".page_body"
@@ -52,6 +54,22 @@ When /^(?:|I )go to (.+)$/ do |page_name|
52
54
  visit _path_to(page_name)
53
55
  end
54
56
 
57
+ Then /^(?:|I )should be on (.+)$/ do |page_name|
58
+ patiently do
59
+ fragment = URI.parse(current_url).fragment
60
+ fragment.sub!(/[#?].*/, '') if fragment # most js frameworks will usually use ? and # for params, we dont care about those
61
+ current_path = URI.parse(current_url).path
62
+ current_path << "##{fragment}" if fragment.present?
63
+ expected_path = _path_to(page_name)
64
+
65
+ # Consider two pages equal if they only differ by a trailing slash.
66
+ current_path = expected_path if current_path.chomp("/") == expected_path.chomp("/")
67
+ current_path = expected_path if current_path.gsub("/#", "#") == expected_path.gsub("/#", "#")
68
+
69
+ current_path.should == expected_path
70
+ end
71
+ end
72
+
55
73
  When /^(?:|I )press "([^"]*)"$/ do |button|
56
74
  patiently do
57
75
  click_button(button)
@@ -106,6 +124,7 @@ When /^(?:|I )choose "([^"]*)"$/ do |field|
106
124
  end
107
125
  end
108
126
 
127
+ # Attach a file to a file upload form field
109
128
  When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"$/ do |path, field|
110
129
  patiently do
111
130
  attach_file(field, File.expand_path(path))
@@ -173,8 +192,6 @@ Then(/^the "(.*?)" field should (not )?contain:$/) do |label, negate, expected_s
173
192
  end
174
193
  end
175
194
 
176
-
177
-
178
195
  # Checks that a list of label/value pairs are visible as control inputs.
179
196
  #
180
197
  # Example:
@@ -190,10 +207,7 @@ Then /^I should see a form with the following values:$/ do |table|
190
207
  end
191
208
  end
192
209
 
193
-
194
-
195
-
196
- # checks that an input field was wrapped with a validation error
210
+ # Checks that an input field was wrapped with a validation error
197
211
  Then /^the "([^"]*)" field should have the error "([^"]*)"$/ do |field, error_message|
198
212
  patiently do
199
213
  element = find_field(field)
@@ -257,29 +271,13 @@ Then /^the radio button "([^"]*)" should( not)? be (?:checked|selected)$/ do |fi
257
271
  end
258
272
  end
259
273
 
260
- Then /^(?:|I )should be on (.+)$/ do |page_name|
261
- patiently do
262
- fragment = URI.parse(current_url).fragment
263
- fragment.sub!(/[#?].*/, '') if fragment # most js frameworks will usually use ? and # for params, we dont care about those
264
- current_path = URI.parse(current_url).path
265
- current_path << "##{fragment}" if fragment.present?
266
- expected_path = _path_to(page_name)
267
-
268
- # Consider two pages equal if they only differ by a trailing slash.
269
- current_path = expected_path if current_path.chomp("/") == expected_path.chomp("/")
270
- current_path = expected_path if current_path.gsub("/#", "#") == expected_path.gsub("/#", "#")
271
-
272
- current_path.should == expected_path
273
- end
274
- end
275
-
276
274
  # Example:
277
275
  #
278
276
  # I should have the following query string:
279
277
  # | locale | de |
280
278
  # | currency_code | EUR |
281
279
  #
282
- # Succeeds when the URL contains the given "locale" and "currency_code" params
280
+ # Succeeds when the URL contains the given `locale` and `currency_code` params
283
281
  Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
284
282
  patiently do
285
283
  query = URI.parse(current_url).query
@@ -291,13 +289,13 @@ Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
291
289
  end
292
290
  end
293
291
 
294
- # Open the current Capybara page using the "launchy" gem
292
+ # Open the current Capybara page using the `launchy` gem
295
293
  Then /^show me the page$/ do
296
294
  save_and_open_page
297
295
  end
298
296
 
299
297
 
300
- # checks for the existance of a input field (given its id or label)
298
+ # Checks for the existance of an input field (given its id or label)
301
299
  Then /^I should( not)? see a field "([^"]*)"$/ do |negate, name|
302
300
  expectation = negate ? :should_not : :should
303
301
  patiently do
@@ -310,9 +308,9 @@ Then /^I should( not)? see a field "([^"]*)"$/ do |negate, name|
310
308
  end
311
309
  end
312
310
 
313
- # Better way to test for a number of money amount than a `Then I should see`
311
+ # Use this step to test for a number or money amount instead of a simple `Then I should see`
314
312
  #
315
- # Checks that there is unexpected minus sign, decimal places etc.
313
+ # Checks for an unexpected minus sign, correct decimal places etc.
316
314
  #
317
315
  # See [here](https://makandracards.com/makandra/1225-test-that-a-number-or-money-amount-is-shown-with-cucumber) for details
318
316
  Then /^I should( not)? see the (?:number|amount) ([\-\d,\.]+)(?: (.*?))?$/ do |negate, amount, unit|
@@ -325,12 +323,13 @@ Then /^I should( not)? see the (?:number|amount) ([\-\d,\.]+)(?: (.*?))?$/ do |n
325
323
  end
326
324
  end
327
325
 
328
- # Checks "Content-Type" HTTP header
326
+ # Checks `Content-Type` HTTP header
329
327
  Then /^I should get a response with content-type "([^\"]*)"$/ do |expected_content_type|
330
328
  page.response_headers['Content-Type'].should =~ /\A#{Regexp.quote(expected_content_type)}($|;)/
331
329
  end
332
330
 
333
- # Checks "Content-Disposition" HTTP header
331
+ # Checks `Content-Disposition` HTTP header
332
+ #
334
333
  # Attention: Doesn't work with Selenium, see https://github.com/jnicklas/capybara#gotchas
335
334
  Then /^I should get a download with filename "([^\"]*)"$/ do |filename|
336
335
  page.response_headers['Content-Disposition'].should =~ /filename="#{filename}"$/
@@ -366,7 +365,8 @@ Then /^"([^"]*)" should( not)? be an option for "([^"]*)"$/ do |value, negate, f
366
365
  end
367
366
  end
368
367
 
369
- # Like `Then I should see`, but with single instead of double quotes. In case the string contains quotes as well.
368
+ # Like `Then I should see`, but with single instead of double quotes. In case
369
+ # the expected string contains quotes as well.
370
370
  Then /^(?:|I )should see '([^']*)'$/ do |text|
371
371
  patiently do
372
372
  page.should have_content(text)
@@ -411,7 +411,7 @@ end
411
411
 
412
412
  # Checks that an element is actually visible, also considering styles
413
413
  # Within a selenium test, the browser is asked whether the element is really visible
414
- # In a non-selenium test, we only check for ".hidden", ".invisible" or "style: display:none"
414
+ # In a non-selenium test, we only check for `.hidden`, `.invisible` or `style: display:none`
415
415
  #
416
416
  # More details [here](https://makandracards.com/makandra/1049-capybara-check-that-a-page-element-is-hidden-via-css)
417
417
  Then /^(the tag )?"([^\"]+)" should( not)? be visible$/ do |tag, selector_or_text, negate|
@@ -477,7 +477,7 @@ end
477
477
  # Click on some text that might not be a link
478
478
  When /^I click on "([^\"]+)"$/ do |text|
479
479
  patiently do
480
- element = page.find(:xpath, "//*[contains(text(), \"#{text}\")]")
480
+ element = page.find(:xpath, ".//*[contains(text(), \"#{text}\")]")
481
481
  element.click
482
482
  end
483
483
  end
@@ -506,7 +506,7 @@ Then /^I should (not )?see an element "([^"]*)"$/ do |negate, selector|
506
506
  end
507
507
  end
508
508
 
509
- # Checks that the result has content type text/plain
509
+ # Checks that the result has content type `text/plain`
510
510
  Then /^I should get a text response$/ do
511
511
  step 'I should get a response with content-type "text/plain"'
512
512
  end
@@ -643,3 +643,16 @@ When /^I perform basic authentication as "([^\"]*)\/([^\"]*)" and go to (.*)$/ d
643
643
  end
644
644
  end
645
645
 
646
+ # Go to the previously viewed page.
647
+ When /^I go back$/ do
648
+ case Capybara::current_driver
649
+ when :selenium, :webkit
650
+ page.evaluate_script('window.history.back()')
651
+ else
652
+ if page.driver.respond_to?(:browser)
653
+ visit page.driver.browser.last_request.env['HTTP_REFERER']
654
+ else
655
+ visit page.driver.last_request.env['HTTP_REFERER']
656
+ end
657
+ end
658
+ end
@@ -1,7 +1,14 @@
1
1
  # coding: UTF-8
2
2
 
3
3
  module ToleranceForSeleniumSyncIssues
4
- RETRY_ERRORS = %w[Capybara::ElementNotFound Spec::Expectations::ExpectationNotMetError RSpec::Expectations::ExpectationNotMetError Capybara::Poltergeist::ClickFailed Selenium::WebDriver::Error::StaleElementReferenceError Selenium::WebDriver::Error::NoAlertPresentError]
4
+ RETRY_ERRORS = %w[
5
+ Capybara::ElementNotFound
6
+ Spec::Expectations::ExpectationNotMetError
7
+ RSpec::Expectations::ExpectationNotMetError
8
+ Capybara::Poltergeist::ClickFailed
9
+ Selenium::WebDriver::Error::StaleElementReferenceError
10
+ Selenium::WebDriver::Error::NoAlertPresentError
11
+ ]
5
12
 
6
13
  # This is similiar but not entirely the same as Capybara::Node::Base#wait_until or Capybara::Session#wait_until
7
14
  def patiently(seconds=Capybara.default_wait_time, &block)
@@ -1,3 +1,3 @@
1
1
  module Spreewald
2
- VERSION = '0.9.0'
2
+ VERSION = '0.9.1'
3
3
  end
@@ -52,6 +52,8 @@ module DocumentationGenerator
52
52
  end
53
53
 
54
54
  class StepDefinitionFile
55
+
56
+ FILE_COMMENT_END = 'FILE_COMMENT_END'
55
57
 
56
58
  include CommentExtractor
57
59
 
@@ -64,7 +66,10 @@ module DocumentationGenerator
64
66
  end
65
67
 
66
68
  def extract_comment
67
- @comment = parse_and_format_comment(@code)
69
+ if @code.include?(FILE_COMMENT_END)
70
+ file_comment = @code.split(FILE_COMMENT_END).first
71
+ @comment = parse_and_format_comment(file_comment)
72
+ end
68
73
  end
69
74
 
70
75
  def add_steps
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- spreewald (0.8.6)
4
+ spreewald (0.9.1)
5
5
  capybara
6
6
  cucumber
7
7
  cucumber-rails
@@ -4,10 +4,10 @@ gem 'rails', '~>3.2'
4
4
  gem "sqlite3", :platform=>:ruby
5
5
  gem 'ruby-debug', :platforms => :ruby_18
6
6
  gem 'database_cleaner'
7
- gem 'capybara', "~>1" # for ruby 1.8.7 (capybara 2.x requires ruby 1.9)
7
+ gem 'capybara', "~>1" # for ruby 1.8.7 compatibility
8
8
  gem 'cucumber', '1.3.2' # 1.3.3 uses an API that slimgems does not provide
9
9
 
10
10
  gem 'rspec-rails'
11
- gem 'spreewald', :path => '../..'
11
+ gem 'spreewald', :path => '../../..'
12
12
 
13
13
  gem 'haml-rails'
@@ -1,7 +1,7 @@
1
1
  PATH
2
- remote: ../..
2
+ remote: ../../..
3
3
  specs:
4
- spreewald (0.8.6)
4
+ spreewald (0.9.1)
5
5
  capybara
6
6
  cucumber
7
7
  cucumber-rails
File without changes
@@ -13,7 +13,7 @@ require 'cucumber/rails'
13
13
  # require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "selectors"))
14
14
 
15
15
  # load Spreewald steps
16
- require File.expand_path('../../lib/spreewald/all_steps')
16
+ require File.expand_path('../../../lib/spreewald/all_steps')
17
17
 
18
18
  # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
19
19
  # order to ease the transition to Capybara we set the default here. If you'd
@@ -53,13 +53,13 @@ DatabaseCleaner.strategy = :transaction
53
53
  # end
54
54
  #
55
55
  # Before('~@no-txn', '~@selenium', '~@culerity', '~@celerity', '~@javascript') do
56
- # DatabaseCleaner.strategy = :transaction
56
+ # DatabaseCleaner.strategy = :truncation
57
57
  # end
58
58
  #
59
59
 
60
60
  # Possible values are :truncation and :transaction
61
61
  # The :transaction strategy is faster, but might give you threading problems.
62
62
  # See https://github.com/cucumber/cucumber-rails/blob/master/features/choose_javascript_database_strategy.feature
63
- Cucumber::Rails::Database.javascript_strategy = :deletion
63
+ # Cucumber::Rails::Database.javascript_strategy = :deletion
64
64
 
65
65
  Capybara.default_wait_time = 5
@@ -0,0 +1,14 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~>3.2'
4
+ gem 'sqlite3', :platform => :ruby
5
+ gem 'ruby-debug', :platforms => :ruby_18
6
+ gem 'database_cleaner'
7
+ gem 'capybara'#, "~>2"
8
+ gem 'cucumber'#, '1.3.2' # 1.3.3 uses an API that slimgems does not provide
9
+ gem 'selenium-webdriver'
10
+
11
+ gem 'rspec-rails'
12
+ gem 'spreewald', :path => '../../..'
13
+
14
+ gem 'haml-rails'
@@ -0,0 +1,167 @@
1
+ PATH
2
+ remote: ../../..
3
+ specs:
4
+ spreewald (0.9.0)
5
+ capybara
6
+ cucumber
7
+ cucumber-rails
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ actionmailer (3.2.13)
13
+ actionpack (= 3.2.13)
14
+ mail (~> 2.5.3)
15
+ actionpack (3.2.13)
16
+ activemodel (= 3.2.13)
17
+ activesupport (= 3.2.13)
18
+ builder (~> 3.0.0)
19
+ erubis (~> 2.7.0)
20
+ journey (~> 1.0.4)
21
+ rack (~> 1.4.5)
22
+ rack-cache (~> 1.2)
23
+ rack-test (~> 0.6.1)
24
+ sprockets (~> 2.2.1)
25
+ activemodel (3.2.13)
26
+ activesupport (= 3.2.13)
27
+ builder (~> 3.0.0)
28
+ activerecord (3.2.13)
29
+ activemodel (= 3.2.13)
30
+ activesupport (= 3.2.13)
31
+ arel (~> 3.0.2)
32
+ tzinfo (~> 0.3.29)
33
+ activeresource (3.2.13)
34
+ activemodel (= 3.2.13)
35
+ activesupport (= 3.2.13)
36
+ activesupport (3.2.13)
37
+ i18n (= 0.6.1)
38
+ multi_json (~> 1.0)
39
+ arel (3.0.2)
40
+ builder (3.0.4)
41
+ capybara (2.2.1)
42
+ mime-types (>= 1.16)
43
+ nokogiri (>= 1.3.3)
44
+ rack (>= 1.0.0)
45
+ rack-test (>= 0.5.4)
46
+ xpath (~> 2.0)
47
+ childprocess (0.3.9)
48
+ ffi (~> 1.0, >= 1.0.11)
49
+ columnize (0.3.6)
50
+ cucumber (1.3.2)
51
+ builder (>= 2.1.2)
52
+ diff-lcs (>= 1.1.3)
53
+ gherkin (~> 2.12)
54
+ multi_json (>= 1.7.5, < 2.0)
55
+ multi_test (>= 0.0.2)
56
+ cucumber-rails (1.4.0)
57
+ capybara (>= 1.1.2)
58
+ cucumber (>= 1.2.0)
59
+ nokogiri (>= 1.5.0)
60
+ rails (>= 3.0.0)
61
+ database_cleaner (1.0.1)
62
+ diff-lcs (1.2.4)
63
+ erubis (2.7.0)
64
+ ffi (1.9.3)
65
+ gherkin (2.12.2)
66
+ multi_json (~> 1.3)
67
+ haml (4.0.3)
68
+ tilt
69
+ haml-rails (0.4)
70
+ actionpack (>= 3.1, < 4.1)
71
+ activesupport (>= 3.1, < 4.1)
72
+ haml (>= 3.1, < 4.1)
73
+ railties (>= 3.1, < 4.1)
74
+ hike (1.2.2)
75
+ i18n (0.6.1)
76
+ journey (1.0.4)
77
+ json (1.8.0)
78
+ linecache (0.46)
79
+ rbx-require-relative (> 0.0.4)
80
+ mail (2.5.4)
81
+ mime-types (~> 1.16)
82
+ treetop (~> 1.4.8)
83
+ mime-types (1.25.1)
84
+ mini_portile (0.5.2)
85
+ multi_json (1.8.4)
86
+ multi_test (0.0.2)
87
+ nokogiri (1.6.1)
88
+ mini_portile (~> 0.5.0)
89
+ polyglot (0.3.3)
90
+ rack (1.4.5)
91
+ rack-cache (1.2)
92
+ rack (>= 0.4)
93
+ rack-ssl (1.3.3)
94
+ rack
95
+ rack-test (0.6.2)
96
+ rack (>= 1.0)
97
+ rails (3.2.13)
98
+ actionmailer (= 3.2.13)
99
+ actionpack (= 3.2.13)
100
+ activerecord (= 3.2.13)
101
+ activeresource (= 3.2.13)
102
+ activesupport (= 3.2.13)
103
+ bundler (~> 1.0)
104
+ railties (= 3.2.13)
105
+ railties (3.2.13)
106
+ actionpack (= 3.2.13)
107
+ activesupport (= 3.2.13)
108
+ rack-ssl (~> 1.3.2)
109
+ rake (>= 0.8.7)
110
+ rdoc (~> 3.4)
111
+ thor (>= 0.14.6, < 2.0)
112
+ rake (10.0.4)
113
+ rbx-require-relative (0.0.9)
114
+ rdoc (3.12.2)
115
+ json (~> 1.4)
116
+ rspec-core (2.13.1)
117
+ rspec-expectations (2.13.0)
118
+ diff-lcs (>= 1.1.3, < 2.0)
119
+ rspec-mocks (2.13.1)
120
+ rspec-rails (2.13.2)
121
+ actionpack (>= 3.0)
122
+ activesupport (>= 3.0)
123
+ railties (>= 3.0)
124
+ rspec-core (~> 2.13.0)
125
+ rspec-expectations (~> 2.13.0)
126
+ rspec-mocks (~> 2.13.0)
127
+ ruby-debug (0.10.4)
128
+ columnize (>= 0.1)
129
+ ruby-debug-base (~> 0.10.4.0)
130
+ ruby-debug-base (0.10.4)
131
+ linecache (>= 0.3)
132
+ rubyzip (1.1.0)
133
+ selenium-webdriver (2.39.0)
134
+ childprocess (>= 0.2.5)
135
+ multi_json (~> 1.0)
136
+ rubyzip (~> 1.0)
137
+ websocket (~> 1.0.4)
138
+ sprockets (2.2.2)
139
+ hike (~> 1.2)
140
+ multi_json (~> 1.0)
141
+ rack (~> 1.0)
142
+ tilt (~> 1.1, != 1.3.0)
143
+ sqlite3 (1.3.8)
144
+ thor (0.18.1)
145
+ tilt (1.4.1)
146
+ treetop (1.4.12)
147
+ polyglot
148
+ polyglot (>= 0.3.1)
149
+ tzinfo (0.3.37)
150
+ websocket (1.0.7)
151
+ xpath (2.0.0)
152
+ nokogiri (~> 1.3)
153
+
154
+ PLATFORMS
155
+ ruby
156
+
157
+ DEPENDENCIES
158
+ capybara
159
+ cucumber
160
+ database_cleaner
161
+ haml-rails
162
+ rails (~> 3.2)
163
+ rspec-rails
164
+ ruby-debug
165
+ selenium-webdriver
166
+ spreewald!
167
+ sqlite3
@@ -0,0 +1,13 @@
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
+ # tell cucumber where it finds it files (subdirectories and symlinks are confusing it)
10
+ feature = ENV['FEATURE'] || "features/shared"
11
+ t.cucumber_opts = "--require features --require features/shared #{feature}"
12
+ end
13
+
@@ -0,0 +1 @@
1
+ This is a dummy file.
@@ -0,0 +1,3 @@
1
+ class StaticPagesController < ApplicationController
2
+
3
+ end
@@ -0,0 +1 @@
1
+ = link_to 'Home', '/static_pages/home'
@@ -32,8 +32,25 @@ Feature: Web steps
32
32
  | Textarea control | Textarea control value |
33
33
  | Empty control | |
34
34
 
35
+
35
36
  Scenario: /^"([^"]*)" should be selected for "([^"]*)"$/
36
37
  When I go to "/forms/form1"
37
38
  Then "Label 2" should be selected for "Select control"
38
39
  Then "Label 1" should be selected for "Select control without selection"
39
40
 
41
+
42
+ Scenario: /^I go back$/
43
+ Given I go to "/static_pages/link_to_home"
44
+ And I follow "Home"
45
+
46
+ When I go back
47
+ Then I should be on "/static_pages/link_to_home"
48
+
49
+
50
+ @javascript
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"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreewald
3
3
  version: !ruby/object:Gem::Version
4
- hash: 59
4
+ hash: 57
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 0
10
- version: 0.9.0
9
+ - 1
10
+ version: 0.9.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tobias Kraze
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2014-02-12 00:00:00 +01:00
18
+ date: 2014-03-04 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -71,7 +71,6 @@ extra_rdoc_files: []
71
71
 
72
72
  files:
73
73
  - .gitignore
74
- - .travis.yml
75
74
  - LICENSE
76
75
  - README.md
77
76
  - Rakefile
@@ -113,29 +112,36 @@ files:
113
112
  - tests/rails-2.3/features/support/paths.rb
114
113
  - tests/rails-2.3/scripts/generate
115
114
  - tests/rails-3.2/.DS_Store
116
- - tests/rails-3.2/Gemfile
117
- - tests/rails-3.2/Gemfile.lock
118
- - tests/rails-3.2/Rakefile
119
- - tests/rails-3.2/config/application.rb
120
- - tests/rails-3.2/config/boot.rb
121
- - tests/rails-3.2/config/database.yml
122
- - tests/rails-3.2/config/environment.rb
123
- - tests/rails-3.2/config/initializers/backtrace_silencers.rb
124
- - tests/rails-3.2/config/initializers/inflections.rb
125
- - tests/rails-3.2/config/initializers/mime_types.rb
126
- - tests/rails-3.2/config/initializers/secret_token.rb
127
- - tests/rails-3.2/config/initializers/session_store.rb
128
- - tests/rails-3.2/config/routes.rb
129
- - tests/rails-3.2/features/support/env.rb
130
- - tests/rails-3.2/features/support/paths.rb
115
+ - tests/rails-3.2/capybara-1/Gemfile
116
+ - tests/rails-3.2/capybara-1/Gemfile.lock
117
+ - tests/rails-3.2/capybara-1/Rakefile
118
+ - tests/rails-3.2/capybara-1/config/application.rb
119
+ - tests/rails-3.2/capybara-1/config/boot.rb
120
+ - tests/rails-3.2/capybara-1/config/database.yml
121
+ - tests/rails-3.2/capybara-1/config/environment.rb
122
+ - tests/rails-3.2/capybara-1/config/initializers/backtrace_silencers.rb
123
+ - tests/rails-3.2/capybara-1/config/initializers/inflections.rb
124
+ - tests/rails-3.2/capybara-1/config/initializers/mime_types.rb
125
+ - tests/rails-3.2/capybara-1/config/initializers/secret_token.rb
126
+ - tests/rails-3.2/capybara-1/config/initializers/session_store.rb
127
+ - tests/rails-3.2/capybara-1/config/routes.rb
128
+ - tests/rails-3.2/capybara-1/features/support/env.rb
129
+ - tests/rails-3.2/capybara-1/features/support/paths.rb
130
+ - tests/rails-3.2/capybara-2/Gemfile
131
+ - tests/rails-3.2/capybara-2/Gemfile.lock
132
+ - tests/rails-3.2/capybara-2/Rakefile
133
+ - tests/rails-3.2/capybara-2/public/favicon.ico
131
134
  - tests/shared/app/controllers/application_controller.rb
132
135
  - tests/shared/app/controllers/emails_controller.rb
133
136
  - tests/shared/app/controllers/forms_controller.rb
137
+ - tests/shared/app/controllers/static_pages_controller.rb
134
138
  - tests/shared/app/controllers/tables_controller.rb
135
139
  - tests/shared/app/models/mailer.rb
136
140
  - tests/shared/app/views/forms/form1.html.haml
137
141
  - tests/shared/app/views/forms/form2.html.haml
138
142
  - tests/shared/app/views/layouts/application.html.haml
143
+ - tests/shared/app/views/static_pages/home.html.haml
144
+ - tests/shared/app/views/static_pages/link_to_home.html.haml
139
145
  - tests/shared/app/views/tables/table1.html.haml
140
146
  - tests/shared/config/database.yml
141
147
  - tests/shared/db/migrate/.gitignore
@@ -198,29 +204,36 @@ test_files:
198
204
  - tests/rails-2.3/features/support/paths.rb
199
205
  - tests/rails-2.3/scripts/generate
200
206
  - tests/rails-3.2/.DS_Store
201
- - tests/rails-3.2/Gemfile
202
- - tests/rails-3.2/Gemfile.lock
203
- - tests/rails-3.2/Rakefile
204
- - tests/rails-3.2/config/application.rb
205
- - tests/rails-3.2/config/boot.rb
206
- - tests/rails-3.2/config/database.yml
207
- - tests/rails-3.2/config/environment.rb
208
- - tests/rails-3.2/config/initializers/backtrace_silencers.rb
209
- - tests/rails-3.2/config/initializers/inflections.rb
210
- - tests/rails-3.2/config/initializers/mime_types.rb
211
- - tests/rails-3.2/config/initializers/secret_token.rb
212
- - tests/rails-3.2/config/initializers/session_store.rb
213
- - tests/rails-3.2/config/routes.rb
214
- - tests/rails-3.2/features/support/env.rb
215
- - tests/rails-3.2/features/support/paths.rb
207
+ - tests/rails-3.2/capybara-1/Gemfile
208
+ - tests/rails-3.2/capybara-1/Gemfile.lock
209
+ - tests/rails-3.2/capybara-1/Rakefile
210
+ - tests/rails-3.2/capybara-1/config/application.rb
211
+ - tests/rails-3.2/capybara-1/config/boot.rb
212
+ - tests/rails-3.2/capybara-1/config/database.yml
213
+ - tests/rails-3.2/capybara-1/config/environment.rb
214
+ - tests/rails-3.2/capybara-1/config/initializers/backtrace_silencers.rb
215
+ - tests/rails-3.2/capybara-1/config/initializers/inflections.rb
216
+ - tests/rails-3.2/capybara-1/config/initializers/mime_types.rb
217
+ - tests/rails-3.2/capybara-1/config/initializers/secret_token.rb
218
+ - tests/rails-3.2/capybara-1/config/initializers/session_store.rb
219
+ - tests/rails-3.2/capybara-1/config/routes.rb
220
+ - tests/rails-3.2/capybara-1/features/support/env.rb
221
+ - tests/rails-3.2/capybara-1/features/support/paths.rb
222
+ - tests/rails-3.2/capybara-2/Gemfile
223
+ - tests/rails-3.2/capybara-2/Gemfile.lock
224
+ - tests/rails-3.2/capybara-2/Rakefile
225
+ - tests/rails-3.2/capybara-2/public/favicon.ico
216
226
  - tests/shared/app/controllers/application_controller.rb
217
227
  - tests/shared/app/controllers/emails_controller.rb
218
228
  - tests/shared/app/controllers/forms_controller.rb
229
+ - tests/shared/app/controllers/static_pages_controller.rb
219
230
  - tests/shared/app/controllers/tables_controller.rb
220
231
  - tests/shared/app/models/mailer.rb
221
232
  - tests/shared/app/views/forms/form1.html.haml
222
233
  - tests/shared/app/views/forms/form2.html.haml
223
234
  - tests/shared/app/views/layouts/application.html.haml
235
+ - tests/shared/app/views/static_pages/home.html.haml
236
+ - tests/shared/app/views/static_pages/link_to_home.html.haml
224
237
  - tests/shared/app/views/tables/table1.html.haml
225
238
  - tests/shared/config/database.yml
226
239
  - tests/shared/db/migrate/.gitignore
data/.travis.yml DELETED
@@ -1,13 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - "1.8.7"
4
- - "1.9.3"
5
- - ree
6
- - "2.0.0"
7
- script: rake travis:run
8
- notifications:
9
- email:
10
- - fail@makandra.de
11
- branches:
12
- only:
13
- - master