Added tests for the install generator.
This commit is contained in:
parent
6d261ef37c
commit
e410388bd6
2
Gemfile
2
Gemfile
@ -10,6 +10,8 @@ group :development, :test do
|
|||||||
gem "rspec", ">= 2.6.0"
|
gem "rspec", ">= 2.6.0"
|
||||||
gem "actionpack", ">=3.0.0"
|
gem "actionpack", ">=3.0.0"
|
||||||
gem "simplecov", :require => false
|
gem "simplecov", :require => false
|
||||||
|
|
||||||
|
gem "generator_spec"
|
||||||
end
|
end
|
||||||
|
|
||||||
# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
|
# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
|
||||||
|
@ -33,6 +33,9 @@ GEM
|
|||||||
diff-lcs (1.1.2)
|
diff-lcs (1.1.2)
|
||||||
erubis (2.6.6)
|
erubis (2.6.6)
|
||||||
abstract (>= 1.0.0)
|
abstract (>= 1.0.0)
|
||||||
|
generator_spec (0.8.3)
|
||||||
|
rails (~> 3.0)
|
||||||
|
rspec-rails
|
||||||
git (1.2.5)
|
git (1.2.5)
|
||||||
i18n (0.5.0)
|
i18n (0.5.0)
|
||||||
jeweler (1.6.2)
|
jeweler (1.6.2)
|
||||||
@ -95,6 +98,7 @@ PLATFORMS
|
|||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
actionpack (>= 3.0.0)
|
actionpack (>= 3.0.0)
|
||||||
|
generator_spec
|
||||||
jeweler
|
jeweler
|
||||||
json_pure
|
json_pure
|
||||||
rails (>= 3.0.0)
|
rails (>= 3.0.0)
|
||||||
|
@ -3,16 +3,12 @@ module Cocoon
|
|||||||
class InstallGenerator < ::Rails::Generators::Base
|
class InstallGenerator < ::Rails::Generators::Base
|
||||||
source_root File.expand_path('../templates', __FILE__)
|
source_root File.expand_path('../templates', __FILE__)
|
||||||
|
|
||||||
if ::Rails::VERSION::MAJOR == 3 && ::Rails::VERSION::MINOR >= 1
|
|
||||||
# for Rails 3.1 no installing is needed anymore, because of the asset pipeline
|
|
||||||
desc "Installing is only needed for rails 3.0.x"
|
|
||||||
def do_nothing
|
|
||||||
puts "Installing is no longer required since Rails 3.1"
|
|
||||||
end
|
|
||||||
else
|
|
||||||
desc "This generator installs the javascript needed for cocoon"
|
desc "This generator installs the javascript needed for cocoon"
|
||||||
def copy_the_javascript
|
def copy_the_javascript
|
||||||
copy_file "../../../app/assets/javascripts/cocoon.js", "public/javascripts/cocoon.js"
|
if ::Rails.version[0..2].to_f >= 3.1
|
||||||
|
puts "Installing is no longer required since Rails 3.1"
|
||||||
|
else
|
||||||
|
copy_file "../../../../../app/assets/javascripts/cocoon.js", "public/javascripts/cocoon.js"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
47
spec/generators/install_generator_spec.rb
Normal file
47
spec/generators/install_generator_spec.rb
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
require 'generator_spec/test_case'
|
||||||
|
require 'generators/cocoon/install/install_generator'
|
||||||
|
|
||||||
|
describe Cocoon::Generators::InstallGenerator do
|
||||||
|
include GeneratorSpec::TestCase
|
||||||
|
|
||||||
|
destination File.expand_path("../../tmp", __FILE__)
|
||||||
|
|
||||||
|
context "in rails 3.0" do
|
||||||
|
context "with no arguments" do
|
||||||
|
before(:all) do
|
||||||
|
::Rails.stub(:version) { '3.0.8' }
|
||||||
|
prepare_destination
|
||||||
|
run_generator
|
||||||
|
end
|
||||||
|
|
||||||
|
it "stubs the version correctly" do
|
||||||
|
Rails.version[0..2].should == "3.0"
|
||||||
|
end
|
||||||
|
|
||||||
|
it "stubs the version correctly" do
|
||||||
|
test_version = (Rails.version[0..2].to_f >= 3.1)
|
||||||
|
test_version.should be_false
|
||||||
|
end
|
||||||
|
|
||||||
|
it "copies cocoon.js to the correct folder" do
|
||||||
|
assert_file "public/javascripts/cocoon.js"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "in rails 3.1" do
|
||||||
|
context "with no arguments" do
|
||||||
|
before(:all) do
|
||||||
|
::Rails.stub(:version) { '3.1.0' }
|
||||||
|
prepare_destination
|
||||||
|
run_generator
|
||||||
|
end
|
||||||
|
|
||||||
|
it "does not copy cocoon.js" do
|
||||||
|
assert_no_file "public/javascripts/cocoon.js"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user