spreewald 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml ADDED
@@ -0,0 +1,14 @@
1
+ language: ruby
2
+ rvm:
3
+ - "1.8.7"
4
+ - "1.9.3"
5
+ - ree
6
+ services:
7
+ - mysql
8
+ script: rake travis:run
9
+ notifications:
10
+ email:
11
+ - fail@makandra.de
12
+ branches:
13
+ only:
14
+ - master
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Spreewald
1
+ # Spreewald [![Build Status](https://secure.travis-ci.org/makandra/spreewald.png?branch=master)](https://travis-ci.org/makandra/spreewald)
2
2
 
3
3
  Spreewald is a collection of useful steps for cucumber. Feel free to fork.
4
4
 
data/Rakefile CHANGED
@@ -15,6 +15,32 @@ task :update_readme do
15
15
  File.open('README.md', 'w') { |f| f.write(readme) }
16
16
  end
17
17
 
18
+ namespace :travis do
19
+
20
+ desc 'Run tests in Travis CI'
21
+ task :run => [:slimgems, :create_database, :create_database_yml] do
22
+ Rake::Task['tests:bundle'].invoke
23
+ Rake::Task['tests:run'].invoke
24
+ end
25
+
26
+ desc 'Install slimgems'
27
+ task :slimgems do
28
+ system('gem install slimgems')
29
+ end
30
+
31
+ desc 'Creates a test database'
32
+ task :create_database do
33
+ system("mysql -e 'create database spreewald_test;'")
34
+ end
35
+
36
+ desc 'Creates a database.yml'
37
+ task :create_database_yml do
38
+ config_dir = "tests/shared/config"
39
+ system("cp #{config_dir}/database.sample.yml #{config_dir}/database.yml")
40
+ end
41
+
42
+ end
43
+
18
44
  namespace :tests do
19
45
 
20
46
  desc "Run tests on all test apps"
@@ -49,6 +75,9 @@ def for_each_directory_of(path, &block)
49
75
  Dir[path].sort.each do |rakefile|
50
76
  directory = File.dirname(rakefile)
51
77
  puts '', "\033[44m#{directory}\033[0m", ''
52
- block.call(directory)
78
+
79
+ unless RUBY_VERSION.start_with?("1.9") and directory.include?("rails-2.3")
80
+ block.call(directory)
81
+ end
53
82
  end
54
83
  end
@@ -0,0 +1,42 @@
1
+ # Attach a file
2
+ #
3
+ # Example:
4
+ #
5
+ # Company.new.logo = File.new…
6
+ #
7
+ # Given the file "…" was attached as logo to the company above
8
+ #
9
+ #
10
+ # Example:
11
+ #
12
+ # class Gallery
13
+ # has_many :images, :as => :owner
14
+ # end
15
+ #
16
+ # class Image
17
+ # belongs_to :owner, polymorphic: true
18
+ # end
19
+ #
20
+ # # so container = Image.new; container.file = File.new… , container.owner = object
21
+ #
22
+ # Given the file "…" was attached as Image/file to the company above
23
+ #
24
+ #
25
+ Given /^the file "([^"]*)" was attached(?: as (?:([^"]*)\/)?([^"]*))? to the ([^"]*) above(?: at "([^"]*)")?$/ do
26
+ |path_to_file, container_name, relation_name, model_name, time_string|
27
+
28
+ object = model_name.camelize.constantize.last
29
+ time = Time.parse(time_string) if time_string.present?
30
+
31
+ if container_name.present?
32
+ container = container_name.camelize.constantize.new # Image.file = File... owner: gallery
33
+ container.owner = object
34
+ container.created_at = time if time
35
+ else
36
+ container = object # Person.avatar = File...
37
+ end
38
+
39
+ container.send("#{relation_name}=", File.new(path_to_file))
40
+ container.updated_at = time if time
41
+ container.save!
42
+ end
@@ -324,6 +324,7 @@ Then /^I should get a response with content-type "([^\"]*)"$/ do |expected_conte
324
324
  end
325
325
 
326
326
  # Checks "Content-Disposition" HTTP header
327
+ # Attention: Doesn't work with Selenium, see https://github.com/jnicklas/capybara#gotchas
327
328
  Then /^I should get a download with filename "([^\"]*)"$/ do |filename|
328
329
  page.response_headers['Content-Disposition'].should =~ /filename="#{filename}"$/
329
330
  end
@@ -1,5 +1,5 @@
1
1
  # coding: UTF-8
2
2
 
3
3
  module Spreewald
4
- VERSION = "0.7.0"
4
+ VERSION = "0.8.0"
5
5
  end
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- spreewald (0.6.7)
4
+ spreewald (0.7.0)
5
5
  capybara
6
6
  cucumber
7
7
  cucumber-rails
@@ -1,7 +1,15 @@
1
- cucumber:
2
- database: spreewald_test
1
+ development:
3
2
  adapter: mysql2
3
+ database: spreewald_development
4
+ encoding: utf8
4
5
  host: localhost
5
6
  username: root
6
7
  password: junior
7
8
 
9
+ test:
10
+ adapter: mysql2
11
+ database: spreewald_test
12
+ encoding: utf8
13
+ host: localhost
14
+ username: root
15
+ password: junior
@@ -4,7 +4,7 @@
4
4
  # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
5
  # files.
6
6
 
7
- ENV["RAILS_ENV"] ||= "cucumber"
7
+ ENV["RAILS_ENV"] ||= "test"
8
8
  require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
9
9
 
10
10
  # require 'spec/support/blueprints'
@@ -5,7 +5,7 @@ gem 'mysql2'
5
5
  gem 'ruby-debug', :platforms => :ruby_18
6
6
  gem 'database_cleaner'
7
7
  gem 'capybara', "~>1" # for ruby 1.8.7 (capybara 2.x requires ruby 1.9)
8
- # gem 'andand'
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
11
  gem 'spreewald', :path => '../..'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- spreewald (0.6.7)
4
+ spreewald (0.7.0)
5
5
  capybara
6
6
  cucumber
7
7
  cucumber-rails
@@ -51,18 +51,19 @@ GEM
51
51
  cucumber (1.3.2)
52
52
  builder (>= 2.1.2)
53
53
  diff-lcs (>= 1.1.3)
54
- gherkin (~> 2.12.0)
55
- multi_json (~> 1.3)
56
- cucumber-rails (1.3.1)
54
+ gherkin (~> 2.12)
55
+ multi_json (>= 1.7.5, < 2.0)
56
+ multi_test (>= 0.0.2)
57
+ cucumber-rails (1.4.0)
57
58
  capybara (>= 1.1.2)
58
59
  cucumber (>= 1.2.0)
59
60
  nokogiri (>= 1.5.0)
60
- rails (~> 3.0)
61
+ rails (>= 3.0.0)
61
62
  database_cleaner (1.0.1)
62
63
  diff-lcs (1.2.4)
63
64
  erubis (2.7.0)
64
65
  ffi (1.8.1)
65
- gherkin (2.12.0)
66
+ gherkin (2.12.2)
66
67
  multi_json (~> 1.3)
67
68
  haml (4.0.3)
68
69
  tilt
@@ -82,6 +83,7 @@ GEM
82
83
  treetop (~> 1.4.8)
83
84
  mime-types (1.23)
84
85
  multi_json (1.7.5)
86
+ multi_test (0.0.2)
85
87
  mysql2 (0.3.11)
86
88
  nokogiri (1.5.9)
87
89
  polyglot (0.3.3)
@@ -153,6 +155,7 @@ PLATFORMS
153
155
 
154
156
  DEPENDENCIES
155
157
  capybara (~> 1)
158
+ cucumber (= 1.3.2)
156
159
  database_cleaner
157
160
  haml-rails
158
161
  mysql2
@@ -1,7 +1,15 @@
1
- cucumber:
2
- database: spreewald_test
1
+ development:
3
2
  adapter: mysql2
3
+ database: spreewald_development
4
+ encoding: utf8
4
5
  host: localhost
5
6
  username: root
6
7
  password: junior
7
8
 
9
+ test:
10
+ adapter: mysql2
11
+ database: spreewald_test
12
+ encoding: utf8
13
+ host: localhost
14
+ username: root
15
+ password: junior
@@ -4,7 +4,7 @@
4
4
  # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
5
  # files.
6
6
 
7
- ENV["RAILS_ENV"] ||= "cucumber"
7
+ ENV["RAILS_ENV"] ||= "test"
8
8
 
9
9
  require 'cucumber/rails'
10
10
  # require 'capybara/rails'
@@ -1,4 +1,4 @@
1
- cucumber:
1
+ test:
2
2
  database: spreewald_test
3
3
  adapter: mysql2
4
4
  host: localhost
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: 3
4
+ hash: 63
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 7
8
+ - 8
9
9
  - 0
10
- version: 0.7.0
10
+ version: 0.8.0
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: 2013-10-30 00:00:00 +01:00
18
+ date: 2013-12-04 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -72,6 +72,7 @@ extra_rdoc_files: []
72
72
  files:
73
73
  - .gitignore
74
74
  - .ruby-version
75
+ - .travis.yml
75
76
  - LICENSE
76
77
  - README.md
77
78
  - Rakefile
@@ -81,6 +82,7 @@ files:
81
82
  - lib/spreewald/all_steps.rb
82
83
  - lib/spreewald/development_steps.rb
83
84
  - lib/spreewald/email_steps.rb
85
+ - lib/spreewald/file_attachment_steps.rb
84
86
  - lib/spreewald/table_steps.rb
85
87
  - lib/spreewald/timecop_steps.rb
86
88
  - lib/spreewald/web_steps.rb
@@ -99,7 +101,7 @@ files:
99
101
  - tests/rails-2.3/config/boot.rb
100
102
  - tests/rails-2.3/config/database.yml
101
103
  - tests/rails-2.3/config/environment.rb
102
- - tests/rails-2.3/config/environments/cucumber.rb
104
+ - tests/rails-2.3/config/environments/test.rb
103
105
  - tests/rails-2.3/config/initializers/backtrace_silencers.rb
104
106
  - tests/rails-2.3/config/initializers/cookie_verification_secret.rb
105
107
  - tests/rails-2.3/config/initializers/inflections.rb