]> source.dussan.org Git - redmine.git/commitdiff
Allows configure plugins directory path in order to change the default location in...
authorMarius Balteanu <marius.balteanu@zitec.com>
Sun, 10 Dec 2023 03:34:16 +0000 (03:34 +0000)
committerMarius Balteanu <marius.balteanu@zitec.com>
Sun, 10 Dec 2023 03:34:16 +0000 (03:34 +0000)
Patch by @tohosaku.

git-svn-id: https://svn.redmine.org/redmine/trunk@22507 e93f8b46-1217-0410-a6f0-8f06a7374b81

config/application.rb
config/environments/test.rb
lib/redmine/plugin_loader.rb
test/unit/lib/redmine/plugin_loader_test.rb
test/unit/lib/redmine/plugin_test.rb

index 48e855c9b1f2064d6b3db155b83ddda149c9aeb2..f5062dfe7fa2b8a245b25454b5140e8bb9cf3fc2 100644 (file)
@@ -85,6 +85,9 @@ module RedmineApp
     # for more options (same options as config.cache_store).
     config.redmine_search_cache_store = :memory_store
 
+    # Sets default plugin directory
+    config.redmine_plugin_directory = 'plugins'
+
     # Configure log level here so that additional environment file
     # can change it (environments/ENV.rb would take precedence over it)
     config.log_level = Rails.env.production? ? :info : :debug
index 199f1bb2736c04004d7a6056a4f867ac7596bea5..e67cea76c3486092a7bb38451da38932fec27218 100644 (file)
@@ -18,6 +18,9 @@ Rails.application.configure do
   # preloads Rails for running tests, you may have to set it to true.
   config.eager_load = false
 
+  # Change the plugin directory when testing to avoid clashes with real plugins.
+  config.redmine_plugin_directory = 'test/fixtures/plugins'
+
   # Configure public file server for tests with Cache-Control for performance.
   config.public_file_server.enabled = true
   config.public_file_server.headers = {
index 135df09ba816ccc5ad2700d3e95671e2666352d0..04d7e4af0dce5cc9177aa71d855ec613caf7475f 100644 (file)
@@ -84,7 +84,7 @@ module Redmine
   class PluginLoader
     # Absolute path to the directory where plugins are located
     cattr_accessor :directory
-    self.directory = Rails.root.join('plugins')
+    self.directory = Rails.root.join Rails.application.config.redmine_plugin_directory
 
     # Absolute path to the public directory where plugins assets are copied
     cattr_accessor :public_directory
index ed59433468e307a829ac4cde6066f39fd3936b88..4584609864f2021ea01380d6d2d0c592489d9cf9 100644 (file)
@@ -23,8 +23,9 @@ class Redmine::PluginLoaderTest < ActiveSupport::TestCase
   def setup
     clear_public
 
+    # Change plugin directory for testing to default in config/environments/tesr.rb.
+    # plugins/foo => test/fixtures/plugins/foo
     @klass = Redmine::PluginLoader
-    @klass.directory = Rails.root.join('test/fixtures/plugins')
     @klass.public_directory = Rails.root.join('tmp/public/plugin_assets')
     @klass.load
   end
index 02df2323684800818514934af5e649942bf37889..9cfd7e7da77c3d16d1298599cce196413b5a8d93 100644 (file)
@@ -22,9 +22,8 @@ require_relative '../../../test_helper'
 class Redmine::PluginTest < ActiveSupport::TestCase
   def setup
     @klass = Redmine::Plugin
-    # Change plugin directory for testing to default
+    # Change plugin directory for testing to default in config/environments/test.rb.
     # plugins/foo => test/fixtures/plugins/foo
-    @klass.directory = Rails.root.join('test/fixtures/plugins')
     # In case some real plugins are installed
     @klass.clear