refinerycms-testing 0.9.9.22 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -214,6 +214,14 @@ Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
214
214
  end
215
215
  end
216
216
 
217
+ Then /the page should have the css "(.*)"$/ do |expected_css|
218
+ page.should have_css(expected_css)
219
+ end
220
+
217
221
  Then /^show me the page$/ do
218
222
  save_and_open_page
219
223
  end
224
+
225
+ Then /^output the page$/ do
226
+ puts page.body
227
+ end
@@ -1,5 +1,5 @@
1
- ::Refinery::Plugins.registered.map{|p|
2
- p.pathname.join('features', 'support', 'paths.rb')
1
+ ([Rails.root] | ::Refinery::Plugins.registered.pathnames).map{|path|
2
+ path.join('features', 'support', 'paths.rb')
3
3
  }.reject{|p| !p.exist?}.each do |paths|
4
4
  require paths
5
5
  end
@@ -21,6 +21,7 @@ module NavigationHelpers
21
21
  # end
22
22
  # end
23
23
  # end
24
+
24
25
  NavigationHelpers::Refinery.constants.each do |name|
25
26
  begin
26
27
  if (mod = "NavigationHelpers::Refinery::#{name}".constantize)
@@ -41,6 +41,9 @@ Gem::Specification.new do |s|
41
41
  s.add_dependency 'autotest-rails'
42
42
  s.add_dependency 'autotest-notification'
43
43
 
44
+ # RCov
45
+ s.add_dependency 'rcov'
46
+
44
47
  s.files = [
45
48
  '#{%w( **/{*,.rspec,.gitignore,.yardopts} ).map { |file| Pathname.glob(gempath.join(file)) }.flatten.reject{|f|
46
49
  !f.exist? or f.to_s =~ /\.gem$/ or (f.directory? and f.children.empty?)
@@ -6,10 +6,21 @@ class RefinerycmsTesting < ::Refinery::Generators::EngineInstaller
6
6
  engine_name "testing"
7
7
 
8
8
  def generate
9
- copy_file 'config/cucumber.yml', Rails.root.join('config', 'cucumber.yml')
10
- copy_file 'spec/spec_helper.rb', Rails.root.join('spec', 'spec_helper.rb')
11
- copy_file 'spec/rcov.opts', Rails.root.join('spec', 'rcov.opts')
12
- copy_file '.rspec', Rails.root.join('.rspec')
9
+ copy_file 'config/cucumber.yml',
10
+ Rails.root.join('config', 'cucumber.yml')
11
+
12
+ copy_file 'spec/spec_helper.rb',
13
+ Rails.root.join('spec', 'spec_helper.rb')
14
+
15
+ copy_file 'spec/rcov.opts',
16
+ Rails.root.join('spec', 'rcov.opts')
17
+
18
+ copy_file 'spec/support/refinery/controller_macros.rb',
19
+ Rails.root.join('spec', 'support', 'refinery', 'controller_macros.rb')
20
+
21
+ copy_file '.rspec',
22
+ Rails.root.join('.rspec')
23
+
13
24
  copy_file 'lib/generators/templates/features/support/paths.rb',
14
25
  Rails.root.join('features', 'support', 'paths.rb')
15
26
  end
@@ -0,0 +1,47 @@
1
+ # Forked to get it working with Rails 3 and RSpec 2
2
+ #
3
+ # From http://github.com/jaymcgavren
4
+ #
5
+ # Save this as rcov.rake in lib/tasks and use rcov:all =>
6
+ # to get accurate spec/feature coverage data
7
+ #
8
+ # Use rcov:rspec or rcov:cucumber
9
+ # to get non-aggregated coverage reports for rspec or cucumber separately
10
+
11
+ require 'cucumber/rake/task'
12
+ require "rspec/core/rake_task"
13
+
14
+ namespace :rcov do
15
+ Cucumber::Rake::Task.new(:cucumber_run) do |t|
16
+ t.rcov = true
17
+ t.rcov_opts = %w{--rails --exclude osx\/objc,gems\/,spec\/,features\/ --aggregate coverage.data}
18
+ t.rcov_opts << %[-o "coverage"]
19
+ end
20
+
21
+ RSpec::Core::RakeTask.new(:rspec_run) do |t|
22
+ t.pattern = '**/*_spec.rb'
23
+ t.rcov = true
24
+ t.rcov_opts = %w{--rails --exclude osx\/objc,gems\/,spec\/}
25
+ t.rcov_opts << '--aggregate coverage.data'
26
+ t.rcov_opts << %[-o "coverage"]
27
+ end
28
+
29
+ desc "Run both specs and features to generate aggregated coverage"
30
+ task :all do |t|
31
+ rm "coverage.data" if File.exist?("coverage.data")
32
+ Rake::Task["rcov:cucumber_run"].invoke
33
+ Rake::Task["rcov:rspec_run"].invoke
34
+ end
35
+
36
+ desc "Run only rspecs"
37
+ task :rspec do |t|
38
+ rm "coverage.data" if File.exist?("coverage.data")
39
+ Rake::Task["rcov:rspec_run"].invoke
40
+ end
41
+
42
+ desc "Run only cucumber"
43
+ task :cucumber do |t|
44
+ rm "coverage.data" if File.exist?("coverage.data")
45
+ Rake::Task["rcov:cucumber_run"].invoke
46
+ end
47
+ end
@@ -2,10 +2,10 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{refinerycms-testing}
5
- s.version = %q{0.9.9.22}
5
+ s.version = %q{1.0.0}
6
6
  s.summary = %q{Testing plugin for Refinery CMS}
7
7
  s.description = %q{This plugin adds the ability to run cucumber and rspec against the RefineryCMS gem while inside a RefineryCMS project}
8
- s.date = %q{2011-05-22}
8
+ s.date = %q{2011-05-28}
9
9
  s.email = %q{info@refinerycms.com}
10
10
  s.homepage = %q{http://refinerycms.com}
11
11
  s.rubyforge_project = %q{refinerycms}
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.require_paths = %w(lib)
15
15
  s.executables = %w()
16
16
 
17
- s.add_dependency 'refinerycms-core', '= 0.9.9.22'
17
+ s.add_dependency 'refinerycms-core', '= 1.0.0'
18
18
  # RSpec
19
19
  s.add_dependency 'rspec-rails', '~> 2.6'
20
20
 
@@ -36,6 +36,9 @@ Gem::Specification.new do |s|
36
36
  s.add_dependency 'autotest-rails'
37
37
  s.add_dependency 'autotest-notification'
38
38
 
39
+ # RCov
40
+ s.add_dependency 'rcov'
41
+
39
42
  s.files = [
40
43
  '.rspec',
41
44
  'config',
@@ -59,9 +62,13 @@ Gem::Specification.new do |s|
59
62
  'lib/refinerycms-testing.rb',
60
63
  'lib/tasks',
61
64
  'lib/tasks/cucumber.rake',
65
+ 'lib/tasks/rcov.rake',
62
66
  'refinerycms-testing.gemspec',
63
67
  'spec',
64
68
  'spec/rcov.opts',
65
- 'spec/spec_helper.rb'
69
+ 'spec/spec_helper.rb',
70
+ 'spec/support',
71
+ 'spec/support/refinery',
72
+ 'spec/support/refinery/controller_macros.rb'
66
73
  ]
67
74
  end
@@ -1,4 +1,7 @@
1
1
  require 'rbconfig'
2
+ require 'factory_girl'
3
+ require File.expand_path('../support/refinery/controller_macros', __FILE__)
4
+
2
5
  def setup_environment
3
6
  # This file is copied to ~/spec when you run 'rails generate rspec'
4
7
  # from the project root directory.
@@ -27,6 +30,9 @@ def setup_environment
27
30
  # instead of true.
28
31
  config.use_transactional_fixtures = true
29
32
  config.use_instantiated_fixtures = false
33
+
34
+ config.include ::Devise::TestHelpers, :type => :controller
35
+ config.extend ::Refinery::ControllerMacros, :type => :controller
30
36
  end
31
37
  end
32
38
 
@@ -64,13 +70,14 @@ else
64
70
  each_run
65
71
  end
66
72
 
67
- def capture_stdout(&block)
68
- original_stdout = $stdout
69
- $stdout = fake = StringIO.new
73
+ def capture_stdout(stdin_str = '')
70
74
  begin
75
+ require 'stringio'
76
+ $o_stdin, $o_stdout, $o_stderr = $stdin, $stdout, $stderr
77
+ $stdin, $stdout, $stderr = StringIO.new(stdin_str), StringIO.new, StringIO.new
71
78
  yield
79
+ {:stdout => $stdout.string, :stderr => $stderr.string}
72
80
  ensure
73
- $stdout = original_stdout
81
+ $stdin, $stdout, $stderr = $o_stdin, $o_stdout, $o_stderr
74
82
  end
75
- fake.string
76
83
  end
@@ -0,0 +1,27 @@
1
+ module Refinery
2
+ module ControllerMacros
3
+ def login_user
4
+ before (:each) do
5
+ @user = Factory(:user)
6
+ @request.env["devise.mapping"] = Devise.mappings[:admin]
7
+ sign_in @user
8
+ end
9
+ end
10
+
11
+ def login_refinery_user
12
+ before (:each) do
13
+ @refinery_user = Factory(:refinery_user)
14
+ @request.env["devise.mapping"] = Devise.mappings[:admin]
15
+ sign_in @refinery_user
16
+ end
17
+ end
18
+
19
+ def login_refinery_translator
20
+ before (:each) do
21
+ @refinery_translator = Factory(:refinery_translator)
22
+ @request.env["devise.mapping"] = Devise.mappings[:admin]
23
+ sign_in @refinery_translator
24
+ end
25
+ end
26
+ end
27
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: refinerycms-testing
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.9.9.22
5
+ version: 1.0.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Philip Arndt
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-22 00:00:00 +12:00
13
+ date: 2011-05-28 00:00:00 +12:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -21,7 +21,7 @@ dependencies:
21
21
  requirements:
22
22
  - - "="
23
23
  - !ruby/object:Gem::Version
24
- version: 0.9.9.22
24
+ version: 1.0.0
25
25
  type: :runtime
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
@@ -167,6 +167,17 @@ dependencies:
167
167
  version: "0"
168
168
  type: :runtime
169
169
  version_requirements: *id014
170
+ - !ruby/object:Gem::Dependency
171
+ name: rcov
172
+ prerelease: false
173
+ requirement: &id015 !ruby/object:Gem::Requirement
174
+ none: false
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: "0"
179
+ type: :runtime
180
+ version_requirements: *id015
170
181
  description: This plugin adds the ability to run cucumber and rspec against the RefineryCMS gem while inside a RefineryCMS project
171
182
  email: info@refinerycms.com
172
183
  executables: []
@@ -188,9 +199,11 @@ files:
188
199
  - lib/generators/templates/features/support/paths.rb
189
200
  - lib/refinerycms-testing.rb
190
201
  - lib/tasks/cucumber.rake
202
+ - lib/tasks/rcov.rake
191
203
  - refinerycms-testing.gemspec
192
204
  - spec/rcov.opts
193
205
  - spec/spec_helper.rb
206
+ - spec/support/refinery/controller_macros.rb
194
207
  has_rdoc: true
195
208
  homepage: http://refinerycms.com
196
209
  licenses: