diff options
Diffstat (limited to 'railties/test/generators/rails_template_runner_test.rb')
-rw-r--r-- | railties/test/generators/rails_template_runner_test.rb | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/railties/test/generators/rails_template_runner_test.rb b/railties/test/generators/rails_template_runner_test.rb index fcc020603d..2da6bd59b5 100644 --- a/railties/test/generators/rails_template_runner_test.rb +++ b/railties/test/generators/rails_template_runner_test.rb @@ -53,12 +53,12 @@ class RailsTemplateRunnerTest < GeneratorTestCase end def test_plugin_with_git_option_should_run_plugin_install - expects_run_with_command("script/plugin install #{@git_plugin_uri}") + expects_run_ruby_script_with_command("script/plugin install #{@git_plugin_uri}") run_template_method(:plugin, 'restful-authentication', :git => @git_plugin_uri) end def test_plugin_with_svn_option_should_run_plugin_install - expects_run_with_command("script/plugin install #{@svn_plugin_uri}") + expects_run_ruby_script_with_command("script/plugin install #{@svn_plugin_uri}") run_template_method(:plugin, 'restful-authentication', :svn => @svn_plugin_uri) end @@ -82,6 +82,22 @@ class RailsTemplateRunnerTest < GeneratorTestCase assert_rails_initializer_includes("config.gem 'mislav-will-paginate', :lib => 'will-paginate', :source => 'http://gems.github.com'") end + def test_gem_with_env_string_should_put_gem_dependency_in_specified_environment + run_template_method(:gem, 'rspec', :env => 'test') + assert_generated_file_with_data('config/environments/test.rb', "config.gem 'rspec'", 'test') + end + + def test_gem_with_env_array_should_put_gem_dependency_in_specified_environments + run_template_method(:gem, 'quietbacktrace', :env => %w[ development test ]) + assert_generated_file_with_data('config/environments/development.rb', "config.gem 'quietbacktrace'") + assert_generated_file_with_data('config/environments/test.rb', "config.gem 'quietbacktrace'") + end + + def test_gem_with_lib_option_set_to_false_should_put_gem_dependency_in_enviroment_correctly + run_template_method(:gem, 'mislav-will-paginate', :lib => false, :source => 'http://gems.github.com') + assert_rails_initializer_includes("config.gem 'mislav-will-paginate', :lib => false, :source => 'http://gems.github.com'") + end + def test_environment_should_include_data_in_environment_initializer_block load_paths = 'config.load_paths += %w["#{RAILS_ROOT}/app/extras"]' run_template_method(:environment, load_paths) @@ -127,7 +143,7 @@ class RailsTemplateRunnerTest < GeneratorTestCase end def test_generate_should_run_script_generate_with_argument_and_options - expects_run_with_command('script/generate model MyModel') + expects_run_ruby_script_with_command('script/generate model MyModel') run_template_method(:generate, 'model', 'MyModel') end @@ -162,6 +178,12 @@ class RailsTemplateRunnerTest < GeneratorTestCase assert_generated_file_with_data 'config/routes.rb', route_command end + def test_run_ruby_script_should_add_ruby_to_command_in_win32_environment + ruby_command = RUBY_PLATFORM =~ /win32/ ? 'ruby ' : '' + expects_run_with_command("#{ruby_command}script/generate model MyModel") + run_template_method(:generate, 'model', 'MyModel') + end + protected def run_template_method(method_name, *args, &block) silence_generator do @@ -174,6 +196,10 @@ class RailsTemplateRunnerTest < GeneratorTestCase Rails::TemplateRunner.any_instance.stubs(:run).once.with(command, false) end + def expects_run_ruby_script_with_command(command) + Rails::TemplateRunner.any_instance.stubs(:run_ruby_script).once.with(command,false) + end + def assert_rails_initializer_includes(data, message = nil) message ||= "Rails::Initializer should include #{data}" assert_generated_file 'config/environment.rb' do |body| |