aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test
diff options
context:
space:
mode:
Diffstat (limited to 'railties/test')
-rw-r--r--railties/test/application/middleware_test.rb2
-rw-r--r--railties/test/application/notifications_test.rb2
-rw-r--r--railties/test/backtrace_cleaner_test.rb4
-rw-r--r--railties/test/fixtures/lib/generators/active_record/fixjour_generator.rb (renamed from railties/test/fixtures/lib/generators/active_record/fixjour/fixjour_generator.rb)2
-rw-r--r--railties/test/fixtures/lib/generators/rails/javascripts_generator.rb4
-rw-r--r--railties/test/fixtures/lib/generators/wrong_generator.rb (renamed from railties/test/fixtures/vendor/gems/gems/wrong/lib/generators/wrong_generator.rb)0
-rw-r--r--railties/test/fixtures/vendor/another_gem_path/xspec/lib/generators/xspec_generator.rb2
-rw-r--r--railties/test/fixtures/vendor/plugins/mspec/lib/rails_generators/mspec_generator.rb2
-rw-r--r--railties/test/generators/actions_test.rb18
-rw-r--r--railties/test/generators/app_generator_test.rb16
-rw-r--r--railties/test/generators/controller_generator_test.rb5
-rw-r--r--railties/test/generators/generator_generator_test.rb5
-rw-r--r--railties/test/generators/generators_test_helper.rb22
-rw-r--r--railties/test/generators/helper_generator_test.rb5
-rw-r--r--railties/test/generators/integration_test_generator_test.rb5
-rw-r--r--railties/test/generators/mailer_generator_test.rb13
-rw-r--r--railties/test/generators/metal_generator_test.rb5
-rw-r--r--railties/test/generators/migration_generator_test.rb6
-rw-r--r--railties/test/generators/model_generator_test.rb5
-rw-r--r--railties/test/generators/named_base_test.rb5
-rw-r--r--railties/test/generators/observer_generator_test.rb5
-rw-r--r--railties/test/generators/performance_test_generator_test.rb5
-rw-r--r--railties/test/generators/plugin_generator_test.rb20
-rw-r--r--railties/test/generators/resource_generator_test.rb5
-rw-r--r--railties/test/generators/scaffold_controller_generator_test.rb5
-rw-r--r--railties/test/generators/scaffold_generator_test.rb5
-rw-r--r--railties/test/generators/session_migration_generator_test.rb6
-rw-r--r--railties/test/generators/stylesheets_generator_test.rb6
-rw-r--r--railties/test/generators_test.rb137
-rw-r--r--railties/test/subscriber_test.rb6
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