spreewald 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
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