diff options
author | Mikel Lindsaar <raasdnil@gmail.com> | 2010-01-19 19:41:15 +1100 |
---|---|---|
committer | Mikel Lindsaar <raasdnil@gmail.com> | 2010-01-19 19:41:15 +1100 |
commit | eaae58ce0c79aa5b4d6de16e2e67034b7fd971bb (patch) | |
tree | d2d3fc90f977020d4e389f526f7ce494a23c3e69 /railties/test | |
parent | c5acbcbb0f72b9968decd702041dcb5b72574a28 (diff) | |
parent | c71120e29caddda295c133adfb279870733a3f81 (diff) | |
download | rails-eaae58ce0c79aa5b4d6de16e2e67034b7fd971bb.tar.gz rails-eaae58ce0c79aa5b4d6de16e2e67034b7fd971bb.tar.bz2 rails-eaae58ce0c79aa5b4d6de16e2e67034b7fd971bb.zip |
Merge branch 'master' of github.com:lifo/docrails
Diffstat (limited to 'railties/test')
30 files changed, 177 insertions, 151 deletions
diff --git a/railties/test/application/middleware_test.rb b/railties/test/application/middleware_test.rb index 7b3077bb6e..1c5cc62ecd 100644 --- a/railties/test/application/middleware_test.rb +++ b/railties/test/application/middleware_test.rb @@ -18,7 +18,9 @@ module ApplicationTests "Rack::Lock", "Rack::Runtime", "ActionDispatch::ShowExceptions", + "ActionDispatch::Notifications", "ActionDispatch::Callbacks", + "ActionDispatch::Cookies", "ActionDispatch::Session::CookieStore", "ActionDispatch::Flash", "ActionDispatch::Cascade", diff --git a/railties/test/application/notifications_test.rb b/railties/test/application/notifications_test.rb index 1eb0777db8..db8605edbe 100644 --- a/railties/test/application/notifications_test.rb +++ b/railties/test/application/notifications_test.rb @@ -64,7 +64,7 @@ module ApplicationTests ActiveRecord::Base.logger = logger = MockLogger.new - # Mimic an ActiveRecord notifications + # Mimic ActiveRecord notifications instrument "active_record.sql", :name => "SQL", :sql => "SHOW tables" wait diff --git a/railties/test/backtrace_cleaner_test.rb b/railties/test/backtrace_cleaner_test.rb index 6cff591b94..80077378db 100644 --- a/railties/test/backtrace_cleaner_test.rb +++ b/railties/test/backtrace_cleaner_test.rb @@ -37,7 +37,7 @@ if defined? Gem test "should format installed gems correctly" do @backtrace = [ "#{Gem.path[0]}/gems/nosuchgem-1.2.3/lib/foo.rb" ] - @result = @cleaner.clean(@backtrace) + @result = @cleaner.clean(@backtrace, :all) assert_equal "nosuchgem (1.2.3) lib/foo.rb", @result[0] end @@ -46,7 +46,7 @@ if defined? Gem # skip this test if default_dir is the only directory on Gem.path if @target_dir @backtrace = [ "#{@target_dir}/gems/nosuchgem-1.2.3/lib/foo.rb" ] - @result = @cleaner.clean(@backtrace) + @result = @cleaner.clean(@backtrace, :all) assert_equal "nosuchgem (1.2.3) lib/foo.rb", @result[0] end end diff --git a/railties/test/fixtures/lib/generators/active_record/fixjour/fixjour_generator.rb b/railties/test/fixtures/lib/generators/active_record/fixjour_generator.rb index a7d079a1bc..7a4edb8bcb 100644 --- a/railties/test/fixtures/lib/generators/active_record/fixjour/fixjour_generator.rb +++ b/railties/test/fixtures/lib/generators/active_record/fixjour_generator.rb @@ -1,4 +1,4 @@ -require 'rails/generators/active_record' +require 'generators/active_record' module ActiveRecord module Generators diff --git a/railties/test/fixtures/lib/generators/rails/javascripts_generator.rb b/railties/test/fixtures/lib/generators/rails/javascripts_generator.rb deleted file mode 100644 index cad5e96784..0000000000 --- a/railties/test/fixtures/lib/generators/rails/javascripts_generator.rb +++ /dev/null @@ -1,4 +0,0 @@ -module Rails::Generators - class JavascriptsGenerator < Rails::Generators::NamedBase - end -end diff --git a/railties/test/fixtures/vendor/gems/gems/wrong/lib/generators/wrong_generator.rb b/railties/test/fixtures/lib/generators/wrong_generator.rb index 6aa7cb052e..6aa7cb052e 100644 --- a/railties/test/fixtures/vendor/gems/gems/wrong/lib/generators/wrong_generator.rb +++ b/railties/test/fixtures/lib/generators/wrong_generator.rb diff --git a/railties/test/fixtures/vendor/another_gem_path/xspec/lib/generators/xspec_generator.rb b/railties/test/fixtures/vendor/another_gem_path/xspec/lib/generators/xspec_generator.rb deleted file mode 100644 index cd477eb4c9..0000000000 --- a/railties/test/fixtures/vendor/another_gem_path/xspec/lib/generators/xspec_generator.rb +++ /dev/null @@ -1,2 +0,0 @@ -class XspecGenerator < Rails::Generators::NamedBase -end diff --git a/railties/test/fixtures/vendor/plugins/mspec/lib/rails_generators/mspec_generator.rb b/railties/test/fixtures/vendor/plugins/mspec/lib/rails_generators/mspec_generator.rb deleted file mode 100644 index 191bdbf2fc..0000000000 --- a/railties/test/fixtures/vendor/plugins/mspec/lib/rails_generators/mspec_generator.rb +++ /dev/null @@ -1,2 +0,0 @@ -class MspecGenerator < Rails::Generators::NamedBase -end diff --git a/railties/test/generators/actions_test.rb b/railties/test/generators/actions_test.rb index 27b6a49566..cb1fa96e0d 100644 --- a/railties/test/generators/actions_test.rb +++ b/railties/test/generators/actions_test.rb @@ -1,7 +1,11 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/app/app_generator' +require 'generators/rails/app/app_generator' -class ActionsTest < GeneratorsTestCase +# TODO This line shouldn't be required +require 'generators/rails/model/model_generator' + +class ActionsTest < Rails::Generators::TestCase + include GeneratorsTestHelper tests Rails::Generators::AppGenerator arguments [destination_root] @@ -11,6 +15,16 @@ class ActionsTest < GeneratorsTestCase @svn_plugin_uri = 'svn://svnhub.com/technoweenie/restful-authentication/trunk' end + def test_invoke_other_generator_with_shortcut + action :invoke, 'model', ['my_model'] + assert_file 'app/models/my_model.rb', /MyModel/ + end + + def test_invoke_other_generator_with_full_namespace + action :invoke, 'rails:model', ['my_model'] + assert_file 'app/models/my_model.rb', /MyModel/ + end + def test_create_file_should_write_data_to_file_path action :create_file, 'lib/test_file.rb', 'heres test data' assert_file 'lib/test_file.rb', 'heres test data' diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb index 62ea07f14e..f821f5caf3 100644 --- a/railties/test/generators/app_generator_test.rb +++ b/railties/test/generators/app_generator_test.rb @@ -1,8 +1,9 @@ require 'abstract_unit' require 'generators/generators_test_helper' -require 'rails/generators/rails/app/app_generator' +require 'generators/rails/app/app_generator' -class AppGeneratorTest < GeneratorsTestCase +class AppGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments [destination_root] def setup @@ -80,11 +81,10 @@ class AppGeneratorTest < GeneratorsTestCase assert_no_file "config/database.yml" end - # TODO: Bring this back using requires - # def test_activerecord_is_removed_from_frameworks_if_skip_activerecord_is_given - # run_generator ["--skip-activerecord"] - # assert_file "config/application.rb", /config\.frameworks \-= \[ :active_record \]/ - # end + def test_activerecord_is_removed_from_frameworks_if_skip_activerecord_is_given + run_generator [destination_root, "--skip-activerecord"] + assert_file "config/boot.rb", /# require "active_record\/railtie"/ + end def test_prototype_and_test_unit_are_added_by_default run_generator @@ -159,7 +159,7 @@ class AppGeneratorTest < GeneratorsTestCase end def test_default_namespace - assert_match "rails:generators:app", Rails::Generators::AppGenerator.namespace + assert_match "rails:app", Rails::Generators::AppGenerator.namespace end def test_file_is_added_for_backwards_compatibility diff --git a/railties/test/generators/controller_generator_test.rb b/railties/test/generators/controller_generator_test.rb index 8e2fd3b9ed..79a4e5bf17 100644 --- a/railties/test/generators/controller_generator_test.rb +++ b/railties/test/generators/controller_generator_test.rb @@ -1,7 +1,8 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/controller/controller_generator' +require 'generators/rails/controller/controller_generator' -class ControllerGeneratorTest < GeneratorsTestCase +class ControllerGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(Account foo bar) def test_help_does_not_show_invoked_generators_options_if_they_already_exist diff --git a/railties/test/generators/generator_generator_test.rb b/railties/test/generators/generator_generator_test.rb index 28377f23b0..f3fd688e4f 100644 --- a/railties/test/generators/generator_generator_test.rb +++ b/railties/test/generators/generator_generator_test.rb @@ -1,7 +1,8 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/generator/generator_generator' +require 'generators/rails/generator/generator_generator' -class GeneratorGeneratorTest < GeneratorsTestCase +class GeneratorGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(awesome) def test_generator_skeleton_is_created diff --git a/railties/test/generators/generators_test_helper.rb b/railties/test/generators/generators_test_helper.rb index 54953b76c8..3cd16a69f9 100644 --- a/railties/test/generators/generators_test_helper.rb +++ b/railties/test/generators/generators_test_helper.rb @@ -10,21 +10,19 @@ Rails.application.config.root = Rails.root require 'rails/generators' require 'rails/generators/test_case' -require 'rubygems' require 'active_record' require 'action_dispatch' -class GeneratorsTestCase < Rails::Generators::TestCase - destination File.join(Rails.root, "tmp") - setup :prepare_destination +module GeneratorsTestHelper + def self.included(base) + base.class_eval do + destination File.join(Rails.root, "tmp") + setup :prepare_destination - def self.inherited(base) - base.tests Rails::Generators.const_get(base.name.sub(/Test$/, '')) - rescue - # Do nothing. - end - - def test_truth - # Don't cry test/unit + begin + base.tests Rails::Generators.const_get(base.name.sub(/Test$/, '')) + rescue + end + end end end
\ No newline at end of file diff --git a/railties/test/generators/helper_generator_test.rb b/railties/test/generators/helper_generator_test.rb index cf18782986..6d7168738e 100644 --- a/railties/test/generators/helper_generator_test.rb +++ b/railties/test/generators/helper_generator_test.rb @@ -1,10 +1,11 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/helper/helper_generator' +require 'generators/rails/helper/helper_generator' ObjectHelper = Class.new AnotherObjectHelperTest = Class.new -class HelperGeneratorTest < GeneratorsTestCase +class HelperGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(admin) def test_helper_skeleton_is_created diff --git a/railties/test/generators/integration_test_generator_test.rb b/railties/test/generators/integration_test_generator_test.rb index 88e18be5b2..d7fc324c88 100644 --- a/railties/test/generators/integration_test_generator_test.rb +++ b/railties/test/generators/integration_test_generator_test.rb @@ -1,7 +1,8 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/integration_test/integration_test_generator' +require 'generators/rails/integration_test/integration_test_generator' -class IntegrationTestGeneratorTest < GeneratorsTestCase +class IntegrationTestGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(integration) def test_integration_test_skeleton_is_created diff --git a/railties/test/generators/mailer_generator_test.rb b/railties/test/generators/mailer_generator_test.rb index ee4346eb71..dfc3130f77 100644 --- a/railties/test/generators/mailer_generator_test.rb +++ b/railties/test/generators/mailer_generator_test.rb @@ -1,12 +1,13 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/mailer/mailer_generator' +require 'generators/rails/mailer/mailer_generator' -class MailerGeneratorTest < GeneratorsTestCase +class MailerGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(notifier foo bar) def test_mailer_skeleton_is_created run_generator - assert_file "app/models/notifier.rb", /class Notifier < ActionMailer::Base/ + assert_file "app/mailers/notifier.rb", /class Notifier < ActionMailer::Base/ end def test_check_class_collision @@ -16,7 +17,7 @@ class MailerGeneratorTest < GeneratorsTestCase def test_invokes_default_test_framework run_generator - assert_file "test/unit/notifier_test.rb", /class NotifierTest < ActionMailer::TestCase/ + assert_file "test/functional/notifier_test.rb", /class NotifierTest < ActionMailer::TestCase/ assert_file "test/fixtures/notifier/foo", /app\/views\/notifier\/foo/ assert_file "test/fixtures/notifier/bar", /app\/views\/notifier\/bar/ end @@ -39,7 +40,7 @@ class MailerGeneratorTest < GeneratorsTestCase def test_actions_are_turned_into_methods run_generator - assert_file "app/models/notifier.rb", /def foo/ - assert_file "app/models/notifier.rb", /def bar/ + assert_file "app/mailers/notifier.rb", /def foo/ + assert_file "app/mailers/notifier.rb", /def bar/ end end diff --git a/railties/test/generators/metal_generator_test.rb b/railties/test/generators/metal_generator_test.rb index 5d6a277561..e3a2384885 100644 --- a/railties/test/generators/metal_generator_test.rb +++ b/railties/test/generators/metal_generator_test.rb @@ -1,7 +1,8 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/metal/metal_generator' +require 'generators/rails/metal/metal_generator' -class MetalGeneratorTest < GeneratorsTestCase +class MetalGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(foo) def test_metal_skeleton_is_created diff --git a/railties/test/generators/migration_generator_test.rb b/railties/test/generators/migration_generator_test.rb index 2fd3e5c056..811a712fd5 100644 --- a/railties/test/generators/migration_generator_test.rb +++ b/railties/test/generators/migration_generator_test.rb @@ -1,7 +1,9 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/migration/migration_generator' +require 'generators/rails/migration/migration_generator' + +class MigrationGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper -class MigrationGeneratorTest < GeneratorsTestCase def test_migration migration = "change_title_body_from_posts" run_generator [migration] diff --git a/railties/test/generators/model_generator_test.rb b/railties/test/generators/model_generator_test.rb index 051a43706b..79ce9a2a7b 100644 --- a/railties/test/generators/model_generator_test.rb +++ b/railties/test/generators/model_generator_test.rb @@ -1,7 +1,8 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/model/model_generator' +require 'generators/rails/model/model_generator' -class ModelGeneratorTest < GeneratorsTestCase +class ModelGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(Account name:string age:integer) def test_help_shows_invoked_generators_options diff --git a/railties/test/generators/named_base_test.rb b/railties/test/generators/named_base_test.rb index 8c1df3b992..99eb431a49 100644 --- a/railties/test/generators/named_base_test.rb +++ b/railties/test/generators/named_base_test.rb @@ -1,5 +1,5 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator' +require 'generators/rails/scaffold_controller/scaffold_controller_generator' # Mock out what we need from AR::Base. module ActiveRecord @@ -11,7 +11,8 @@ module ActiveRecord end end -class NamedBaseTest < GeneratorsTestCase +class NamedBaseTest < Rails::Generators::TestCase + include GeneratorsTestHelper tests Rails::Generators::ScaffoldControllerGenerator def test_named_generator_attributes diff --git a/railties/test/generators/observer_generator_test.rb b/railties/test/generators/observer_generator_test.rb index 44d9e4a9f3..058a19228d 100644 --- a/railties/test/generators/observer_generator_test.rb +++ b/railties/test/generators/observer_generator_test.rb @@ -1,7 +1,8 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/observer/observer_generator' +require 'generators/rails/observer/observer_generator' -class ObserverGeneratorTest < GeneratorsTestCase +class ObserverGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(account) def test_invokes_default_orm diff --git a/railties/test/generators/performance_test_generator_test.rb b/railties/test/generators/performance_test_generator_test.rb index 099575ea1d..c95063a127 100644 --- a/railties/test/generators/performance_test_generator_test.rb +++ b/railties/test/generators/performance_test_generator_test.rb @@ -1,7 +1,8 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/performance_test/performance_test_generator' +require 'generators/rails/performance_test/performance_test_generator' -class PerformanceTestGeneratorTest < GeneratorsTestCase +class PerformanceTestGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(performance) def test_performance_test_skeleton_is_created diff --git a/railties/test/generators/plugin_generator_test.rb b/railties/test/generators/plugin_generator_test.rb index f84b8b6d50..4bfe210efb 100644 --- a/railties/test/generators/plugin_generator_test.rb +++ b/railties/test/generators/plugin_generator_test.rb @@ -1,17 +1,33 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/plugin/plugin_generator' +require 'generators/rails/plugin/plugin_generator' -class PluginGeneratorTest < GeneratorsTestCase +class PluginGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(plugin_fu) def test_plugin_skeleton_is_created run_generator + year = Date.today.year %w( vendor/plugins vendor/plugins/plugin_fu + vendor/plugins/plugin_fu/init.rb + vendor/plugins/plugin_fu/install.rb + vendor/plugins/plugin_fu/uninstall.rb vendor/plugins/plugin_fu/lib + vendor/plugins/plugin_fu/lib/plugin_fu.rb ).each{ |path| assert_file path } + + %w( + vendor/plugins/plugin_fu/README + vendor/plugins/plugin_fu/Rakefile + ).each{ |path| assert_file path, /PluginFu/ } + + %w( + vendor/plugins/plugin_fu/README + vendor/plugins/plugin_fu/MIT-LICENSE + ).each{ |path| assert_file path, /#{year}/ } end def test_check_class_collision diff --git a/railties/test/generators/resource_generator_test.rb b/railties/test/generators/resource_generator_test.rb index 15c0ca0f01..959934bd71 100644 --- a/railties/test/generators/resource_generator_test.rb +++ b/railties/test/generators/resource_generator_test.rb @@ -1,7 +1,8 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/resource/resource_generator' +require 'generators/rails/resource/resource_generator' -class ResourceGeneratorTest < GeneratorsTestCase +class ResourceGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(account) def setup diff --git a/railties/test/generators/scaffold_controller_generator_test.rb b/railties/test/generators/scaffold_controller_generator_test.rb index 7593c14dd9..f971598d18 100644 --- a/railties/test/generators/scaffold_controller_generator_test.rb +++ b/railties/test/generators/scaffold_controller_generator_test.rb @@ -1,12 +1,13 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator' +require 'generators/rails/scaffold_controller/scaffold_controller_generator' module Unknown module Generators end end -class ScaffoldControllerGeneratorTest < GeneratorsTestCase +class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(User name:string age:integer) def test_controller_skeleton_is_created diff --git a/railties/test/generators/scaffold_generator_test.rb b/railties/test/generators/scaffold_generator_test.rb index 4ddc7b1c89..a7e9c8a231 100644 --- a/railties/test/generators/scaffold_generator_test.rb +++ b/railties/test/generators/scaffold_generator_test.rb @@ -1,7 +1,8 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/scaffold/scaffold_generator' +require 'generators/rails/scaffold/scaffold_generator' -class ScaffoldGeneratorTest < GeneratorsTestCase +class ScaffoldGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper arguments %w(product_line title:string price:integer) def setup diff --git a/railties/test/generators/session_migration_generator_test.rb b/railties/test/generators/session_migration_generator_test.rb index 251ffb19ed..de28b4c75b 100644 --- a/railties/test/generators/session_migration_generator_test.rb +++ b/railties/test/generators/session_migration_generator_test.rb @@ -1,7 +1,9 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/session_migration/session_migration_generator' +require 'generators/rails/session_migration/session_migration_generator' + +class SessionMigrationGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper -class SessionMigrationGeneratorTest < GeneratorsTestCase def test_session_migration_with_default_name run_generator assert_migration "db/migrate/add_sessions_table.rb", /class AddSessionsTable < ActiveRecord::Migration/ diff --git a/railties/test/generators/stylesheets_generator_test.rb b/railties/test/generators/stylesheets_generator_test.rb index d9079327ba..718fcb1fa7 100644 --- a/railties/test/generators/stylesheets_generator_test.rb +++ b/railties/test/generators/stylesheets_generator_test.rb @@ -1,7 +1,9 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/stylesheets/stylesheets_generator' +require 'generators/rails/stylesheets/stylesheets_generator' + +class StylesheetsGeneratorTest < Rails::Generators::TestCase + include GeneratorsTestHelper -class StylesheetsGeneratorTest < GeneratorsTestCase def test_copy_stylesheets run_generator assert_file "public/stylesheets/scaffold.css" diff --git a/railties/test/generators_test.rb b/railties/test/generators_test.rb index 2df218debc..60c81a813f 100644 --- a/railties/test/generators_test.rb +++ b/railties/test/generators_test.rb @@ -1,15 +1,21 @@ require 'generators/generators_test_helper' -require 'rails/generators/rails/model/model_generator' -require 'rails/generators/test_unit/model/model_generator' +require 'generators/rails/model/model_generator' +require 'generators/test_unit/model/model_generator' require 'mocha' -class GeneratorsTest < GeneratorsTestCase +class GeneratorsTest < Rails::Generators::TestCase + include GeneratorsTestHelper + def setup - Rails::Generators.instance_variable_set(:@load_paths, nil) - Gem.stubs(:respond_to?).with(:loaded_specs).returns(false) + @path = File.expand_path("lib", Rails.root) + $LOAD_PATH.unshift(@path) + end + + def teardown + $LOAD_PATH.delete(@path) end - def test_invoke_add_generators_to_raw_lookups + def test_simple_invoke TestUnit::Generators::ModelGenerator.expects(:start).with(["Account"], {}) Rails::Generators.invoke("test_unit:model", ["Account"]) end @@ -34,87 +40,66 @@ class GeneratorsTest < GeneratorsTestCase Rails::Generators.invoke :model, ["Account"], :behavior => :skip end - def test_find_by_namespace_without_base_or_context - assert_nil Rails::Generators.find_by_namespace(:model) + def test_find_by_namespace + klass = Rails::Generators.find_by_namespace("rails:model") + assert klass + assert_equal "rails:model", klass.namespace end def test_find_by_namespace_with_base klass = Rails::Generators.find_by_namespace(:model, :rails) assert klass - assert_equal "rails:generators:model", klass.namespace + assert_equal "rails:model", klass.namespace end def test_find_by_namespace_with_context klass = Rails::Generators.find_by_namespace(:test_unit, nil, :model) assert klass - assert_equal "test_unit:generators:model", klass.namespace - end - - def test_find_by_namespace_with_duplicated_name - klass = Rails::Generators.find_by_namespace(:foobar) - assert klass - assert_equal "foobar:foobar", klass.namespace + assert_equal "test_unit:model", klass.namespace end - def test_find_by_namespace_lookup_to_the_rails_root_folder + def test_find_by_namespace_with_generator_on_root klass = Rails::Generators.find_by_namespace(:fixjour) assert klass assert_equal "fixjour", klass.namespace end - def test_find_by_namespace_lookup_to_deep_rails_root_folders + def test_find_by_namespace_in_subfolder klass = Rails::Generators.find_by_namespace(:fixjour, :active_record) assert klass - assert_equal "active_record:generators:fixjour", klass.namespace + assert_equal "active_record:fixjour", klass.namespace end - def test_find_by_namespace_lookup_traverse_folders - klass = Rails::Generators.find_by_namespace(:javascripts, :rails) + def test_find_by_namespace_with_duplicated_name + klass = Rails::Generators.find_by_namespace(:foobar) assert klass - assert_equal "rails:generators:javascripts", klass.namespace + assert_equal "foobar:foobar", klass.namespace end - def test_find_by_namespace_lookup_to_vendor_folders - klass = Rails::Generators.find_by_namespace(:mspec) - assert klass - assert_equal "mspec", klass.namespace + def test_find_by_namespace_without_base_or_context_looks_into_rails_namespace + assert Rails::Generators.find_by_namespace(:model) end - def test_find_by_namespace_lookup_with_gem_specification - assert_nil Rails::Generators.find_by_namespace(:xspec) - Rails::Generators.instance_variable_set(:@load_paths, nil) - - spec = Gem::Specification.new - spec.expects(:full_gem_path).returns(File.join(Rails.root, 'vendor', 'another_gem_path', 'xspec')) - Gem.expects(:respond_to?).with(:loaded_specs).returns(true) - Gem.expects(:loaded_specs).returns(:spec => spec) - - klass = Rails::Generators.find_by_namespace(:xspec) - assert klass - assert_equal "xspec", klass.namespace - end - - def test_builtin_generators - assert Rails::Generators.builtin.include?("rails:model") + def test_find_by_namespace_show_warning_if_generator_cant_be_loaded + output = capture(:stderr) { Rails::Generators.find_by_namespace(:wrong) } + assert_match /\[WARNING\] Could not load generator/, output + assert_match /Rails 2\.x generator/, output end def test_rails_generators_help_with_builtin_information output = capture(:stdout){ Rails::Generators.help } - assert_match /model/, output - assert_match /scaffold_controller/, output + assert_match /Rails:/, output + assert_match /^ model$/, output + assert_match /^ scaffold_controller$/, output end def test_rails_generators_with_others_information - output = capture(:stdout){ Rails::Generators.help }.split("\n").last - assert_equal "Others: active_record:fixjour, fixjour, foobar:foobar, mspec, rails:javascripts, xspec.", output - end - - def test_warning_is_shown_if_generator_cant_be_loaded - Rails::Generators.load_paths << File.join(Rails.root, "vendor", "gems", "gems", "wrong") - output = capture(:stderr){ Rails::Generators.find_by_namespace(:wrong) } - - assert_match /\[WARNING\] Could not load generator at/, output - assert_match /Rails 2\.x generator/, output + output = capture(:stdout){ Rails::Generators.help } + assert_match /ActiveRecord:/, output + assert_match /Fixjour:/, output + assert_match /^ active_record:model$/, output + assert_match /^ active_record:fixjour$/, output + assert_match /^ fixjour$/, output end def test_no_color_sets_proper_shell @@ -124,36 +109,18 @@ class GeneratorsTest < GeneratorsTestCase Thor::Base.shell = Thor::Shell::Color end - def test_rails_root_templates - template = File.join(Rails.root, "lib", "templates", "active_record", "model", "model.rb") - - # Create template - mkdir_p(File.dirname(template)) - File.open(template, 'w'){ |f| f.write "empty" } - - output = capture(:stdout) do - Rails::Generators.invoke :model, ["user"], :destination_root => destination_root - end - - assert_file "app/models/user.rb" do |content| - assert_equal "empty", content - end - ensure - rm_rf File.dirname(template) - end - def test_fallbacks_for_generators_on_find_by_namespace Rails::Generators.fallbacks[:remarkable] = :test_unit klass = Rails::Generators.find_by_namespace(:plugin, :remarkable) assert klass - assert_equal "test_unit:generators:plugin", klass.namespace + assert_equal "test_unit:plugin", klass.namespace end def test_fallbacks_for_generators_on_find_by_namespace_with_context Rails::Generators.fallbacks[:remarkable] = :test_unit klass = Rails::Generators.find_by_namespace(:remarkable, :rails, :plugin) assert klass - assert_equal "test_unit:generators:plugin", klass.namespace + assert_equal "test_unit:plugin", klass.namespace end def test_fallbacks_for_generators_on_invoke @@ -181,8 +148,26 @@ class GeneratorsTest < GeneratorsTestCase Rails::Generators.subclasses.delete(klass) end + def test_rails_root_templates + template = File.join(Rails.root, "lib", "templates", "active_record", "model", "model.rb") + + # Create template + mkdir_p(File.dirname(template)) + File.open(template, 'w'){ |f| f.write "empty" } + + output = capture(:stdout) do + Rails::Generators.invoke :model, ["user"], :destination_root => destination_root + end + + assert_file "app/models/user.rb" do |content| + assert_equal "empty", content + end + ensure + rm_rf File.dirname(template) + end + def test_source_paths_for_not_namespaced_generators - mspec = Rails::Generators.find_by_namespace :mspec - assert mspec.source_paths.include?(File.join(Rails.root, "lib", "templates", "mspec")) + mspec = Rails::Generators.find_by_namespace :fixjour + assert mspec.source_paths.include?(File.join(Rails.root, "lib", "templates", "fixjour")) end end diff --git a/railties/test/subscriber_test.rb b/railties/test/subscriber_test.rb index ac34939510..fa3f7bfabb 100644 --- a/railties/test/subscriber_test.rb +++ b/railties/test/subscriber_test.rb @@ -92,7 +92,7 @@ module SubscriberTest def test_flushes_loggers_when_action_dispatch_callback_is_received Rails::Subscriber.add :my_subscriber, @subscriber - instrument "action_dispatch.callback" + instrument "action_dispatch.after_dispatch" wait assert_equal 1, @logger.flush_count end @@ -100,7 +100,7 @@ module SubscriberTest def test_flushes_the_same_logger_just_once Rails::Subscriber.add :my_subscriber, @subscriber Rails::Subscriber.add :another, @subscriber - instrument "action_dispatch.callback" + instrument "action_dispatch.after_dispatch" wait assert_equal 1, @logger.flush_count end @@ -111,7 +111,7 @@ module SubscriberTest Rails::Subscriber.log_tailer = log_tailer Rails::Subscriber.add :my_subscriber, @subscriber - instrument "action_dispatch.callback" + instrument "action_dispatch.after_dispatch" wait ensure Rails::Subscriber.log_tailer = nil |