1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/railties/test/generator_lookup_test.rb

40 lines
1.4 KiB
Ruby

require 'plugin_test_helper'
class GeneratorLookupTest < Test::Unit::TestCase
def setup
@fixture_dirs = %w{alternate default}
@configuration = Rails.configuration = Rails::Configuration.new
# We need to add our testing plugin directory to the plugin paths so
# the locator knows where to look for our plugins
@configuration.plugin_paths += @fixture_dirs.map{|fd| plugin_fixture_path(fd)}
@initializer = Rails::Initializer.new(@configuration)
@initializer.add_plugin_load_paths
@initializer.load_plugins
load 'rails_generator.rb'
require 'rails_generator/scripts'
end
def test_should_load_from_all_plugin_paths
assert Rails::Generator::Base.lookup('a_generator')
assert Rails::Generator::Base.lookup('stubby_generator')
end
def test_should_create_generator_source_for_each_directory_in_plugin_paths
sources = Rails::Generator::Base.sources
@fixture_dirs.each do |gen_dir|
expected_label = "plugins (fixtures/plugins/#{gen_dir})".to_sym
assert sources.any? {|source| source.label == expected_label }
end
end
def test_should_preserve_order_in_usage_message
msg = Rails::Generator::Scripts::Base.new.send(:usage_message)
positions = @fixture_dirs.map do |gen_dir|
pos = msg.index("Plugins (fixtures/plugins/#{gen_dir})")
assert_not_nil pos
pos
end
assert_equal positions.sort, positions
end
end