aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test
diff options
context:
space:
mode:
authorRizwan Reza <rizwanreza@gmail.com>2010-05-17 02:40:15 +0430
committerRizwan Reza <rizwanreza@gmail.com>2010-05-17 02:40:15 +0430
commitd148a6f6ba5f8ee65905f12cd2601fcc377d4852 (patch)
tree4bcb5e7ad47cfb9a9bb14ffe7c9e003d4646d64c /railties/test
parente1c773006969abea3c0619fbdc7e32c121b6085f (diff)
parent6b4e0cc526f55b5532cf99292c94f0a4db53b16f (diff)
downloadrails-d148a6f6ba5f8ee65905f12cd2601fcc377d4852.tar.gz
rails-d148a6f6ba5f8ee65905f12cd2601fcc377d4852.tar.bz2
rails-d148a6f6ba5f8ee65905f12cd2601fcc377d4852.zip
Merge branch 'master' of git://github.com/rails/rails
Diffstat (limited to 'railties/test')
-rw-r--r--railties/test/application/initializers/hooks_test.rb (renamed from railties/test/application/initializers/initializers_test.rb)35
-rw-r--r--railties/test/generators/actions_test.rb14
-rw-r--r--railties/test/generators/app_generator_test.rb9
-rw-r--r--railties/test/generators/generated_attribute_test.rb40
-rw-r--r--railties/test/generators_test.rb13
-rw-r--r--railties/test/rails_info_test.rb21
-rw-r--r--railties/test/railties/engine_test.rb26
7 files changed, 106 insertions, 52 deletions
diff --git a/railties/test/application/initializers/initializers_test.rb b/railties/test/application/initializers/hooks_test.rb
index 2e6a707175..198abbe861 100644
--- a/railties/test/application/initializers/initializers_test.rb
+++ b/railties/test/application/initializers/hooks_test.rb
@@ -16,29 +16,34 @@ module ApplicationTests
assert $foo
end
- test "after_initialize block works correctly" do
+ test "hooks block works correctly without cache classes (before_eager_load is not called)" do
add_to_config <<-RUBY
+ $initialization_callbacks = []
config.root = "#{app_path}"
- config.after_initialize { $test_after_initialize_block1 = "success" }
- config.after_initialize { $test_after_initialize_block2 = "congratulations" }
+ config.cache_classes = false
+ config.before_configuration { $initialization_callbacks << 1 }
+ config.before_initialize { $initialization_callbacks << 2 }
+ config.before_eager_load { Boom }
+ config.after_initialize { $initialization_callbacks << 3 }
RUBY
- require "#{app_path}/config/environment"
- assert_equal "success", $test_after_initialize_block1
- assert_equal "congratulations", $test_after_initialize_block2
+ require "#{app_path}/config/environment"
+ assert_equal [1,2,3], $initialization_callbacks
end
- test "after_initialize block works correctly when no block is passed" do
+ test "hooks block works correctly with cache classes" do
add_to_config <<-RUBY
+ $initialization_callbacks = []
config.root = "#{app_path}"
- config.after_initialize { $test_after_initialize_block1 = "success" }
- config.after_initialize # don't pass a block, this is what we're testing!
- config.after_initialize { $test_after_initialize_block2 = "congratulations" }
+ config.cache_classes = true
+ config.before_configuration { $initialization_callbacks << 1 }
+ config.before_initialize { $initialization_callbacks << 2 }
+ config.before_eager_load { $initialization_callbacks << 3 }
+ config.after_initialize { $initialization_callbacks << 4 }
RUBY
- require "#{app_path}/config/environment"
- assert_equal "success", $test_after_initialize_block1
- assert_equal "congratulations", $test_after_initialize_block2
+ require "#{app_path}/config/environment"
+ assert_equal [1,2,3,4], $initialization_callbacks
end
test "after_initialize runs after frameworks have been initialized" do
@@ -61,7 +66,7 @@ module ApplicationTests
RUBY
require "#{app_path}/config/environment"
- assert [:to_prepare, :after_initialize], $order
+ assert_equal [:to_prepare, :after_initialize], $order
end
test "after_initialize happens after to_prepare in production" do
@@ -75,7 +80,7 @@ module ApplicationTests
require "#{app_path}/config/application"
Rails.env.replace "production"
require "#{app_path}/config/environment"
- assert [:to_prepare, :after_initialize], $order
+ assert_equal [:to_prepare, :after_initialize], $order
end
end
end
diff --git a/railties/test/generators/actions_test.rb b/railties/test/generators/actions_test.rb
index e6fab93a87..65fbf61902 100644
--- a/railties/test/generators/actions_test.rb
+++ b/railties/test/generators/actions_test.rb
@@ -86,8 +86,13 @@ class ActionsTest < Rails::Generators::TestCase
action :gem, 'mislav-will-paginate', :lib => 'will-paginate', :source => 'http://gems.github.com'
end
- assert_file 'Gemfile', /gem "mislav\-will\-paginate", :require_as => "will\-paginate"/
+ assert_deprecated do
+ action :gem, 'thoughtbot-factory_girl', :require_as => 'factory_girl', :source => 'http://gems.github.com'
+ end
+
+ assert_file 'Gemfile', /gem "mislav\-will\-paginate", :require => "will\-paginate"/
assert_file 'Gemfile', /source "http:\/\/gems\.github\.com"/
+ assert_file 'Gemfile', /gem "thoughtbot-factory_girl", :require => "factory_girl"/
end
def test_gem_with_env_should_include_all_dependencies_in_gemfile
@@ -97,7 +102,12 @@ class ActionsTest < Rails::Generators::TestCase
action :gem, 'rspec', :env => %w(development test)
end
- assert_file 'Gemfile', /gem "rspec", :only => \["development", "test"\]/
+ assert_deprecated do
+ action :gem, 'rspec-rails', :only => %w(development test)
+ end
+
+ assert_file 'Gemfile', /gem "rspec", :group => \["development", "test"\]/
+ assert_file 'Gemfile', /gem "rspec-rails", :group => \["development", "test"\]/
end
def test_gem_with_version_should_include_version_in_gemfile
diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb
index 8743defe82..3975a39ab1 100644
--- a/railties/test/generators/app_generator_test.rb
+++ b/railties/test/generators/app_generator_test.rb
@@ -70,8 +70,13 @@ class AppGeneratorTest < Rails::Generators::TestCase
end
def test_name_collision_raises_an_error
- content = capture(:stderr){ run_generator [File.join(destination_root, "generate")] }
- assert_equal "Invalid application name generate. Please give a name which does not match one of the reserved rails words.\n", content
+ reserved_words = %w[generate g console c server s dbconsole db
+ application destroy benchmarker profiler
+ plugin runner test]
+ reserved_words.each do |reserved|
+ content = capture(:stderr){ run_generator [File.join(destination_root, reserved)] }
+ assert_equal "Invalid application name #{reserved}. Please give a name which does not match one of the reserved rails words.\n", content
+ end
end
def test_invalid_database_option_raises_an_error
diff --git a/railties/test/generators/generated_attribute_test.rb b/railties/test/generators/generated_attribute_test.rb
new file mode 100644
index 0000000000..dacb06fb13
--- /dev/null
+++ b/railties/test/generators/generated_attribute_test.rb
@@ -0,0 +1,40 @@
+require 'generators/generators_test_helper'
+require 'rails/generators/generated_attribute'
+
+class GeneratedAttributeTest < Rails::Generators::TestCase
+ include GeneratorsTestHelper
+
+ def test_field_type_returns_text_field
+ %w(integer float decimal string).each do |name|
+ assert_field_type name, :text_field
+ end
+ end
+
+ def test_field_type_returns_datetime_select
+ %w(datetime timestamp).each do |name|
+ assert_field_type name, :datetime_select
+ end
+ end
+
+ def test_field_type_returns_time_select
+ assert_field_type 'time', :time_select
+ end
+
+ def test_field_type_returns_date_select
+ assert_field_type 'date', :date_select
+ end
+
+ def test_field_type_returns_text_area
+ assert_field_type 'text', :text_area
+ end
+
+ def test_field_type_returns_check_box
+ assert_field_type 'boolean', :check_box
+ end
+
+ def test_field_type_with_unknown_type_returns_text_field
+ %w(foo bar baz).each do |name|
+ assert_field_type name, :text_field
+ end
+ end
+end
diff --git a/railties/test/generators_test.rb b/railties/test/generators_test.rb
index 16f8f43b99..74a09d4bde 100644
--- a/railties/test/generators_test.rb
+++ b/railties/test/generators_test.rb
@@ -108,21 +108,10 @@ class GeneratorsTest < Rails::Generators::TestCase
assert_match /^ fixjour$/, output
end
- def test_rails_generators_does_not_show_activerecord_info_if_its_the_default
- output = capture(:stdout){ Rails::Generators.help }
- assert_no_match /ActiveRecord:/, output
- assert_no_match /^ active_record:model$/, output
- assert_no_match /^ active_record:fixjour$/, output
- end
-
- def test_rails_generators_shows_activerecord_info_if_its_not_the_default
- Rails::Generators.options[:rails][:orm] = :data_mapper
+ def test_rails_generators_does_not_show_activerecord_hooks
output = capture(:stdout){ Rails::Generators.help }
assert_match /ActiveRecord:/, output
- assert_match /^ active_record:model$/, output
assert_match /^ active_record:fixjour$/, output
- ensure
- Rails::Generators.options[:rails][:orm] = :active_record
end
def test_no_color_sets_proper_shell
diff --git a/railties/test/rails_info_test.rb b/railties/test/rails_info_test.rb
index fc28d7e912..1da66062aa 100644
--- a/railties/test/rails_info_test.rb
+++ b/railties/test/rails_info_test.rb
@@ -14,27 +14,6 @@ class InfoTest < ActiveSupport::TestCase
silence_warnings { load 'rails/info.rb' }
end
- def test_edge_rails_revision_not_set_when_svn_info_is_empty
- Rails::Info.property 'Test that this will not be defined' do
- Rails::Info.edge_rails_revision ''
- end
- assert !property_defined?('Test that this will not be defined')
- end
-
- def test_edge_rails_revision_extracted_from_svn_info
- Rails::Info.property 'Test Edge Rails revision' do
- Rails::Info.edge_rails_revision <<-EOS
- commit 420c4b3d8878156d04f45e47050ddc62ae00c68c
- Author: David Heinemeier Hansson <david@loudthinking.com>
- Date: Sun Apr 13 17:33:27 2008 -0500
-
- Added Rails.public_path to control where HTML and assets are expected to be loaded from
-EOS
- end
-
- assert_property 'Test Edge Rails revision', '420c4b3d8878156d04f45e47050ddc62ae00c68c'
- end
-
def test_property_with_block_swallows_exceptions_and_ignores_property
assert_nothing_raised do
Rails::Info.module_eval do
diff --git a/railties/test/railties/engine_test.rb b/railties/test/railties/engine_test.rb
index 40ac11fa03..b3f65fd00d 100644
--- a/railties/test/railties/engine_test.rb
+++ b/railties/test/railties/engine_test.rb
@@ -28,5 +28,31 @@ module RailtiesTest
boot_rails
assert !Rails::Engine.respond_to?(:config)
end
+
+ test "initializers are executed after application configuration initializers" do
+ @plugin.write "lib/bukkits.rb", <<-RUBY
+ class Bukkits
+ class Engine < ::Rails::Engine
+ initializer "dummy_initializer" do
+ end
+ end
+ end
+ RUBY
+
+ boot_rails
+
+ initializers = Rails.application.initializers
+ index = initializers.index { |i| i.name == "dummy_initializer" }
+ selection = initializers[(index-3)..(index)].map(&:name).map(&:to_s)
+
+ assert_equal %w(
+ load_config_initializers
+ load_config_initializers
+ engines_blank_point
+ dummy_initializer
+ ), selection
+
+ assert index < initializers.index { |i| i.name == :build_middleware_stack }
+ end
end
end