Possibility to define the default enable trackers when creating a project (#13175).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11394 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2013-02-15 08:28:34 +00:00
parent 348a1d59ef
commit 4e9fbeb851
6 changed files with 45 additions and 5 deletions

View File

@@ -87,7 +87,15 @@ class ActiveSupport::TestCase
end
def with_settings(options, &block)
saved_settings = options.keys.inject({}) {|h, k| h[k] = Setting[k].is_a?(Symbol) ? Setting[k] : Setting[k].dup; h}
saved_settings = options.keys.inject({}) do |h, k|
h[k] = case Setting[k]
when Symbol, false, true, nil
Setting[k]
else
Setting[k].dup
end
h
end
options.each {|k, v| Setting[k] = v}
yield
ensure

View File

@@ -74,9 +74,30 @@ class ProjectTest < ActiveSupport::TestCase
with_settings :default_projects_modules => ['issue_tracking', 'repository'] do
assert_equal ['issue_tracking', 'repository'], Project.new.enabled_module_names
end
end
assert_equal Tracker.all.sort, Project.new.trackers.sort
assert_equal Tracker.find(1, 3).sort, Project.new(:tracker_ids => [1, 3]).trackers.sort
def test_default_trackers_should_match_default_tracker_ids_setting
with_settings :default_projects_tracker_ids => ['1', '3'] do
assert_equal Tracker.find(1, 3).sort, Project.new.trackers.sort
end
end
def test_default_trackers_should_be_all_trackers_with_blank_setting
with_settings :default_projects_tracker_ids => nil do
assert_equal Tracker.all.sort, Project.new.trackers.sort
end
end
def test_default_trackers_should_be_empty_with_empty_setting
with_settings :default_projects_tracker_ids => [] do
assert_equal [], Project.new.trackers
end
end
def test_default_trackers_should_not_replace_initialized_trackers
with_settings :default_projects_tracker_ids => ['1', '3'] do
assert_equal Tracker.find(1, 2).sort, Project.new(:tracker_ids => [1, 2]).trackers.sort
end
end
def test_update