7b0cb6aba8
* Ran the Rails upgrade * Upgraded to Rails Engines 2.3.2 * Added a plugin to let Engines override application views. * Converted tests to use the new classes: ** ActionController::TestCase for functional ** ActiveSupport::TestCase for units * Converted ActiveRecord::Error message to a string. * ActiveRecord grouping returns an ordered hash which doesn't have #sort! * Updated the I18n storage_units format. * Added some default initializers from a fresh rails app * Changed the order of check_box_tags and hidden_field_tags. The hidden tag needs to appear first in Rails 2.3, otherwise it will override any value in the check_box_tag. * Removed the custom handler for when the cookie store is tampered with. Rails 2.3 removed the TamperedWithCookie exception and instead Rails will not load the data from it when it's been tampered with (e.g. no user login). * Fixed mail layouts, 2.3 has problems with implicit multipart emails that use layouts. Also removed some custom Redmine mailer code. * Fixed a bug that occurred in tests where the "required" span tag would be added to the :field_status translation. This resulted in an email string of: <li>Status<span class="required"> *</span><span class="required"> *</span> Instead of: <li>Status: New</li> git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2887 e93f8b46-1217-0410-a6f0-8f06a7374b81
58 lines
2.1 KiB
Ruby
58 lines
2.1 KiB
Ruby
# Tests in this file ensure that:
|
|
#
|
|
# * the application /app/[controllers|helpers|models] and /lib
|
|
# paths preceed the corresponding plugin paths
|
|
# * the plugin paths are added to $LOAD_PATH in the order in which plugins are
|
|
# loaded
|
|
|
|
require File.dirname(__FILE__) + '/../test_helper'
|
|
|
|
class LoadPathTest < Test::Unit::TestCase
|
|
def setup
|
|
@load_path = expand_paths($LOAD_PATH)
|
|
end
|
|
|
|
# Not sure if these test actually make sense as this now essentially tests
|
|
# Rails core functionality. On the other hand Engines relies on this to some
|
|
# extend so this will choke if something important changes in Rails.
|
|
|
|
# the application app/... and lib/ directories should appear
|
|
# before any plugin directories
|
|
|
|
def test_application_app_libs_should_precede_all_plugin_app_libs
|
|
types = %w(app/controllers app/helpers app/models lib)
|
|
types.each do |t|
|
|
app_index = load_path_index(File.join(RAILS_ROOT, t))
|
|
assert_not_nil app_index, "#{t} is missing in $LOAD_PATH"
|
|
Engines.plugins.each do |plugin|
|
|
first_plugin_index = load_path_index(File.join(plugin.directory, t))
|
|
assert(app_index < first_plugin_index) unless first_plugin_index.nil?
|
|
end
|
|
end
|
|
end
|
|
|
|
# the engine directories should appear in the proper order based on
|
|
# the order they were started
|
|
|
|
def test_plugin_dirs_should_appear_in_reverse_plugin_loading_order
|
|
app_paths = %w(app/controllers/ app app/models app/helpers lib)
|
|
app_paths.map { |p| File.join(RAILS_ROOT, p)}
|
|
plugin_paths = Engines.plugins.reverse.collect { |plugin| plugin.load_paths.reverse }.flatten
|
|
|
|
expected_paths = expand_paths(app_paths + plugin_paths)
|
|
# only look at those paths that are also present in expected_paths so
|
|
# the only difference would be in the order of the paths
|
|
actual_paths = @load_path & expected_paths
|
|
|
|
assert_equal expected_paths, actual_paths
|
|
end
|
|
|
|
protected
|
|
def expand_paths(paths)
|
|
paths.collect { |p| File.expand_path(p) }
|
|
end
|
|
|
|
def load_path_index(dir)
|
|
@load_path.index(File.expand_path(dir))
|
|
end
|
|
end |