From: Jean-Baptiste Barth Date: Tue, 21 Jun 2011 03:16:49 +0000 (+0000) Subject: Revert r6104 "Merged r6098 from trunk." X-Git-Url: http://git.osdn.net/view?p=redminele%2Fredmine.git;a=commitdiff_plain;h=102c9afadfd61b1c993b97e39af964305cd8eb61 Revert r6104 "Merged r6098 from trunk." I messed things up with a cherry-pick on master, I'll re-apply it after. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.2-stable@6105 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/attachment.rb b/app/models/attachment.rb index 92eb9157..ff434d8f 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -43,7 +43,7 @@ class Attachment < ActiveRecord::Base "LEFT JOIN #{Project.table_name} ON #{Document.table_name}.project_id = #{Project.table_name}.id"} cattr_accessor :storage_path - @@storage_path = Redmine::Configuration['attachments_storage_path'] || "#{Rails.root}/files" + @@storage_path = Redmine::Configuration['attachments_storage_path'] || "#{RAILS_ROOT}/files" def validate if self.filesize > Setting.attachment_max_size.to_i.kilobytes diff --git a/app/models/project.rb b/app/models/project.rb index c9d00e9b..ab345be4 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -544,27 +544,7 @@ class Project < ActiveRecord::Base def enabled_module_names enabled_modules.collect(&:name) end - - # Enable a specific module - # - # Examples: - # project.enable_module!(:issue_tracking) - # project.enable_module!("issue_tracking") - def enable_module!(name) - enabled_modules << EnabledModule.new(:name => name.to_s) unless module_enabled?(name) - end - - # Disable a module if it exists - # - # Examples: - # project.disable_module!(:issue_tracking) - # project.disable_module!("issue_tracking") - # project.disable_module!(project.enabled_modules.first) - def disable_module!(target) - target = enabled_modules.detect{|mod| target.to_s == mod.name} unless enabled_modules.include?(target) - target.destroy unless target.blank? - end - + safe_attributes 'name', 'description', 'homepage', diff --git a/app/models/setting.rb b/app/models/setting.rb index 12b186fe..80e084e9 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -75,7 +75,7 @@ class Setting < ActiveRecord::Base TIS-620) cattr_accessor :available_settings - @@available_settings = YAML::load(File.open("#{Rails.root}/config/settings.yml")) + @@available_settings = YAML::load(File.open("#{RAILS_ROOT}/config/settings.yml")) Redmine::Plugin.all.each do |plugin| next unless plugin.settings @@available_settings["plugin_#{plugin.id}"] = {'default' => plugin.settings[:default], 'serialized' => true} diff --git a/lib/generators/redmine_plugin_controller/redmine_plugin_controller_generator.rb b/lib/generators/redmine_plugin_controller/redmine_plugin_controller_generator.rb index 24d3af8e..7f3f3f68 100644 --- a/lib/generators/redmine_plugin_controller/redmine_plugin_controller_generator.rb +++ b/lib/generators/redmine_plugin_controller/redmine_plugin_controller_generator.rb @@ -14,7 +14,7 @@ class RedminePluginControllerGenerator < ControllerGenerator end def destination_root - File.join(Rails.root, plugin_path) + File.join(RAILS_ROOT, plugin_path) end def manifest diff --git a/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb b/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb index be231a91..1c34439a 100644 --- a/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb +++ b/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb @@ -14,7 +14,7 @@ class RedminePluginModelGenerator < ModelGenerator end def destination_root - File.join(Rails.root, plugin_path) + File.join(RAILS_ROOT, plugin_path) end def manifest diff --git a/lib/redmine/i18n.rb b/lib/redmine/i18n.rb index 29ff3281..f0cc529b 100644 --- a/lib/redmine/i18n.rb +++ b/lib/redmine/i18n.rb @@ -56,11 +56,11 @@ module Redmine def month_name(month) ::I18n.t('date.month_names')[month] end - + def valid_languages - @@valid_languages ||= Dir.glob(File.join(Rails.root, 'config', 'locales', '*.yml')).collect {|f| File.basename(f).split('.').first}.collect(&:to_sym) + @@valid_languages ||= Dir.glob(File.join(RAILS_ROOT, 'config', 'locales', '*.yml')).collect {|f| File.basename(f).split('.').first}.collect(&:to_sym) end - + def find_language(lang) @@languages_lookup = valid_languages.inject({}) {|k, v| k[v.to_s.downcase] = v; k } @@languages_lookup[lang.to_s.downcase] diff --git a/lib/redmine/plugin.rb b/lib/redmine/plugin.rb index e4066a10..f30277ad 100644 --- a/lib/redmine/plugin.rb +++ b/lib/redmine/plugin.rb @@ -1,16 +1,16 @@ -# Redmine - project management software -# Copyright (C) 2006-2011 Jean-Philippe Lang +# redMine - project management software +# Copyright (C) 2006-2007 Jean-Philippe Lang # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @@ -69,7 +69,7 @@ module Redmine #:nodoc: p.name(id.to_s.humanize) if p.name.nil? # Adds plugin locales if any # YAML translation files should be found under /config/locales/ - ::I18n.load_path += Dir.glob(File.join(Rails.root, 'vendor', 'plugins', id.to_s, 'config', 'locales', '*.yml')) + ::I18n.load_path += Dir.glob(File.join(RAILS_ROOT, 'vendor', 'plugins', id.to_s, 'config', 'locales', '*.yml')) registered_plugins[id] = p end diff --git a/lib/redmine/scm/adapters/abstract_adapter.rb b/lib/redmine/scm/adapters/abstract_adapter.rb index 6dc41606..bb016115 100644 --- a/lib/redmine/scm/adapters/abstract_adapter.rb +++ b/lib/redmine/scm/adapters/abstract_adapter.rb @@ -204,7 +204,7 @@ module Redmine end if Rails.env == 'development' # Capture stderr when running in dev environment - cmd = "#{cmd} 2>>#{Rails.root}/log/scm.stderr.log" + cmd = "#{cmd} 2>>#{RAILS_ROOT}/log/scm.stderr.log" end begin if RUBY_VERSION < '1.9' diff --git a/lib/redmine/version.rb b/lib/redmine/version.rb index 13c292f1..2da94757 100644 --- a/lib/redmine/version.rb +++ b/lib/redmine/version.rb @@ -14,7 +14,7 @@ module Redmine def self.revision revision = nil - entries_path = "#{Rails.root}/.svn/entries" + entries_path = "#{RAILS_ROOT}/.svn/entries" if File.readable?(entries_path) begin f = File.open(entries_path, 'r') diff --git a/lib/redmine/views/my_page/block.rb b/lib/redmine/views/my_page/block.rb index 06f532dd..b6ca29f9 100644 --- a/lib/redmine/views/my_page/block.rb +++ b/lib/redmine/views/my_page/block.rb @@ -1,16 +1,16 @@ # Redmine - project management software -# Copyright (C) 2006-2011 Jean-Philippe Lang +# Copyright (C) 2006-2009 Jean-Philippe Lang # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @@ -20,7 +20,7 @@ module Redmine module MyPage module Block def self.additional_blocks - @@additional_blocks ||= Dir.glob("#{Rails.root}/vendor/plugins/*/app/views/my/blocks/_*.{rhtml,erb}").inject({}) do |h,file| + @@additional_blocks ||= Dir.glob("#{RAILS_ROOT}/vendor/plugins/*/app/views/my/blocks/_*.{rhtml,erb}").inject({}) do |h,file| name = File.basename(file).split('.').first.gsub(/^_/, '') h[name] = name.to_sym h diff --git a/lib/tasks/extract_fixtures.rake b/lib/tasks/extract_fixtures.rake index d2dbf091..604091ba 100644 --- a/lib/tasks/extract_fixtures.rake +++ b/lib/tasks/extract_fixtures.rake @@ -7,7 +7,7 @@ task :extract_fixtures => :environment do ActiveRecord::Base.establish_connection (ActiveRecord::Base.connection.tables - skip_tables).each do |table_name| i = "000" - File.open("#{Rails.root}/#{table_name}.yml", 'w' ) do |file| + File.open("#{RAILS_ROOT}/#{table_name}.yml", 'w' ) do |file| data = ActiveRecord::Base.connection.select_all(sql % table_name) file.write data.inject({}) { |hash, record| # cast extracted values @@ -19,5 +19,4 @@ task :extract_fixtures => :environment do }.to_yaml end end -end - +end diff --git a/lib/tasks/initializers.rake b/lib/tasks/initializers.rake index fa20f09b..3d4a4020 100644 --- a/lib/tasks/initializers.rake +++ b/lib/tasks/initializers.rake @@ -1,7 +1,7 @@ desc 'Generates a configuration file for cookie store sessions.' file 'config/initializers/session_store.rb' do - path = File.join(Rails.root, 'config', 'initializers', 'session_store.rb') + path = File.join(RAILS_ROOT, 'config', 'initializers', 'session_store.rb') secret = ActiveSupport::SecureRandom.hex(40) File.open(path, 'w') do |f| f.write <<"EOF" diff --git a/test/fixtures/repositories.yml b/test/fixtures/repositories.yml index 61930f39..c5510589 100644 --- a/test/fixtures/repositories.yml +++ b/test/fixtures/repositories.yml @@ -1,9 +1,9 @@ --- repositories_001: project_id: 1 - url: file:///<%= Rails.root %>/tmp/test/subversion_repository + url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository id: 10 - root_url: file:///<%= Rails.root %>/tmp/test/subversion_repository + root_url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository password: "" login: "" type: Subversion diff --git a/test/functional/application_controller_test.rb b/test/functional/application_controller_test.rb index 5cc7901f..57f3e091 100644 --- a/test/functional/application_controller_test.rb +++ b/test/functional/application_controller_test.rb @@ -32,7 +32,7 @@ class ApplicationControllerTest < ActionController::TestCase # check that all language files are valid def test_localization - lang_files_count = Dir["#{Rails.root}/config/locales/*.yml"].size + lang_files_count = Dir["#{RAILS_ROOT}/config/locales/*.yml"].size assert_equal lang_files_count, valid_languages.size valid_languages.each do |lang| assert set_language_if_valid(lang) diff --git a/test/functional/attachments_controller_test.rb b/test/functional/attachments_controller_test.rb index 1f91da3b..e609299c 100644 --- a/test/functional/attachments_controller_test.rb +++ b/test/functional/attachments_controller_test.rb @@ -32,7 +32,7 @@ class AttachmentsControllerTest < ActionController::TestCase @controller = AttachmentsController.new @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new - Attachment.storage_path = "#{Rails.root}/test/fixtures/files" + Attachment.storage_path = "#{RAILS_ROOT}/test/fixtures/files" User.current = nil end diff --git a/test/test_helper.rb b/test/test_helper.rb index 51eaae13..e8474de1 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -78,13 +78,11 @@ class ActiveSupport::TestCase # Use a temporary directory for attachment related tests def set_tmp_attachments_directory - Dir.mkdir "#{Rails.root}/tmp/test" unless File.directory?("#{Rails.root}/tmp/test") - unless File.directory?("#{Rails.root}/tmp/test/attachments") - Dir.mkdir "#{Rails.root}/tmp/test/attachments" - end - Attachment.storage_path = "#{Rails.root}/tmp/test/attachments" + Dir.mkdir "#{RAILS_ROOT}/tmp/test" unless File.directory?("#{RAILS_ROOT}/tmp/test") + Dir.mkdir "#{RAILS_ROOT}/tmp/test/attachments" unless File.directory?("#{RAILS_ROOT}/tmp/test/attachments") + Attachment.storage_path = "#{RAILS_ROOT}/tmp/test/attachments" end - + def with_settings(options, &block) saved_settings = options.keys.inject({}) {|h, k| h[k] = Setting[k].dup; h} options.each {|k, v| Setting[k] = v} diff --git a/test/unit/lib/redmine/hook_test.rb b/test/unit/lib/redmine/hook_test.rb index 14782683..82f507f2 100644 --- a/test/unit/lib/redmine/hook_test.rb +++ b/test/unit/lib/redmine/hook_test.rb @@ -1,16 +1,16 @@ -# Redmine - project management software -# Copyright (C) 2006-2011 Jean-Philippe Lang +# redMine - project management software +# Copyright (C) 2006-2008 Jean-Philippe Lang # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @@ -20,10 +20,10 @@ require File.expand_path('../../../../test_helper', __FILE__) class Redmine::Hook::ManagerTest < ActiveSupport::TestCase fixtures :issues - + # Some hooks that are manually registered in these tests class TestHook < Redmine::Hook::ViewListener; end - + class TestHook1 < TestHook def view_layouts_base_html_head(context) 'Test hook 1 listener.' @@ -35,13 +35,13 @@ class Redmine::Hook::ManagerTest < ActiveSupport::TestCase 'Test hook 2 listener.' end end - + class TestHook3 < TestHook def view_layouts_base_html_head(context) "Context keys: #{context.keys.collect(&:to_s).sort.join(', ')}." end end - + class TestLinkToHook < TestHook def view_layouts_base_html_head(context) link_to('Issues', :controller => 'issues') @@ -51,54 +51,54 @@ class Redmine::Hook::ManagerTest < ActiveSupport::TestCase class TestHookHelperController < ActionController::Base include Redmine::Hook::Helper end - + class TestHookHelperView < ActionView::Base include Redmine::Hook::Helper end - + Redmine::Hook.clear_listeners - + def setup @hook_module = Redmine::Hook end - + def teardown @hook_module.clear_listeners end - + def test_clear_listeners assert_equal 0, @hook_module.hook_listeners(:view_layouts_base_html_head).size @hook_module.add_listener(TestHook1) @hook_module.add_listener(TestHook2) assert_equal 2, @hook_module.hook_listeners(:view_layouts_base_html_head).size - + @hook_module.clear_listeners assert_equal 0, @hook_module.hook_listeners(:view_layouts_base_html_head).size end - + def test_add_listener assert_equal 0, @hook_module.hook_listeners(:view_layouts_base_html_head).size @hook_module.add_listener(TestHook1) assert_equal 1, @hook_module.hook_listeners(:view_layouts_base_html_head).size end - + def test_call_hook @hook_module.add_listener(TestHook1) assert_equal ['Test hook 1 listener.'], hook_helper.call_hook(:view_layouts_base_html_head) end - + def test_call_hook_with_context @hook_module.add_listener(TestHook3) assert_equal ['Context keys: bar, controller, foo, project, request.'], hook_helper.call_hook(:view_layouts_base_html_head, :foo => 1, :bar => 'a') end - + def test_call_hook_with_multiple_listeners @hook_module.add_listener(TestHook1) @hook_module.add_listener(TestHook2) assert_equal ['Test hook 1 listener.', 'Test hook 2 listener.'], hook_helper.call_hook(:view_layouts_base_html_head) end - + # Context: Redmine::Hook::Helper.call_hook default_url def test_call_hook_default_url_options @hook_module.add_listener(TestLinkToHook) @@ -111,27 +111,27 @@ class Redmine::Hook::ManagerTest < ActiveSupport::TestCase @hook_module.add_listener(TestHook3) assert_match /project/i, hook_helper.call_hook(:view_layouts_base_html_head)[0] end - + def test_call_hook_from_controller_with_controller_added_to_context @hook_module.add_listener(TestHook3) assert_match /controller/i, hook_helper.call_hook(:view_layouts_base_html_head)[0] end - + def test_call_hook_from_controller_with_request_added_to_context @hook_module.add_listener(TestHook3) assert_match /request/i, hook_helper.call_hook(:view_layouts_base_html_head)[0] end - + def test_call_hook_from_view_with_project_added_to_context @hook_module.add_listener(TestHook3) assert_match /project/i, view_hook_helper.call_hook(:view_layouts_base_html_head) end - + def test_call_hook_from_view_with_controller_added_to_context @hook_module.add_listener(TestHook3) assert_match /controller/i, view_hook_helper.call_hook(:view_layouts_base_html_head) end - + def test_call_hook_from_view_with_request_added_to_context @hook_module.add_listener(TestHook3) assert_match /request/i, view_hook_helper.call_hook(:view_layouts_base_html_head) @@ -146,27 +146,27 @@ class Redmine::Hook::ManagerTest < ActiveSupport::TestCase def test_call_hook_should_not_change_the_default_url_for_email_notifications issue = Issue.find(1) - + ActionMailer::Base.deliveries.clear Mailer.deliver_issue_add(issue) mail = ActionMailer::Base.deliveries.last - + @hook_module.add_listener(TestLinkToHook) hook_helper.call_hook(:view_layouts_base_html_head) - + ActionMailer::Base.deliveries.clear Mailer.deliver_issue_add(issue) mail2 = ActionMailer::Base.deliveries.last - + assert_equal mail.body, mail2.body end - + def hook_helper @hook_helper ||= TestHookHelperController.new end def view_hook_helper - @view_hook_helper ||= TestHookHelperView.new(Rails.root.to_s + '/app/views') + @view_hook_helper ||= TestHookHelperView.new(RAILS_ROOT + '/app/views') end end diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb index 1fe6f150..d307500e 100644 --- a/test/unit/project_test.rb +++ b/test/unit/project_test.rb @@ -597,54 +597,6 @@ class ProjectTest < ActiveSupport::TestCase end end - context "enabled_modules" do - setup do - @project = Project.find(1) - end - - should "define module by names and preserve ids" do - # Remove one module - modules = @project.enabled_modules.slice(0..-2) - assert modules.any? - assert_difference 'EnabledModule.count', -1 do - @project.enabled_module_names = modules.collect(&:name) - end - @project.reload - # Ids should be preserved - assert_equal @project.enabled_module_ids.sort, modules.collect(&:id).sort - end - - should "enable a module" do - @project.enabled_module_names = [] - @project.reload - assert_equal [], @project.enabled_module_names - #with string - @project.enable_module!("issue_tracking") - assert_equal ["issue_tracking"], @project.enabled_module_names - #with symbol - @project.enable_module!(:gantt) - assert_equal ["issue_tracking", "gantt"], @project.enabled_module_names - #don't add a module twice - @project.enable_module!("issue_tracking") - assert_equal ["issue_tracking", "gantt"], @project.enabled_module_names - end - - should "disable a module" do - #with string - assert @project.enabled_module_names.include?("issue_tracking") - @project.disable_module!("issue_tracking") - assert ! @project.reload.enabled_module_names.include?("issue_tracking") - #with symbol - assert @project.enabled_module_names.include?("gantt") - @project.disable_module!(:gantt) - assert ! @project.reload.enabled_module_names.include?("gantt") - #with EnabledModule object - first_module = @project.enabled_modules.first - @project.disable_module!(first_module) - assert ! @project.reload.enabled_module_names.include?(first_module.name) - end - end - def test_enabled_module_names_should_not_recreate_enabled_modules project = Project.find(1) # Remove one module