]> source.dussan.org Git - redmine.git/commitdiff
Refactor integration test for plugins routing (added in r22328) in order to use the...
authorMarius Balteanu <marius.balteanu@zitec.com>
Mon, 11 Dec 2023 10:56:02 +0000 (10:56 +0000)
committerMarius Balteanu <marius.balteanu@zitec.com>
Mon, 11 Dec 2023 10:56:02 +0000 (10:56 +0000)
git-svn-id: https://svn.redmine.org/redmine/trunk@22513 e93f8b46-1217-0410-a6f0-8f06a7374b81

test/fixtures/plugins/redmine_test_plugin_bar/app/controllers/bar_plugin_articles_controller.rb [new file with mode: 0644]
test/fixtures/plugins/redmine_test_plugin_bar/config/routes.rb [new file with mode: 0644]
test/fixtures/plugins/redmine_test_plugin_bar/init.rb [new file with mode: 0644]
test/fixtures/plugins/redmine_test_plugin_foo/app/controllers/plugin_articles_controller.rb [new file with mode: 0644]
test/fixtures/plugins/redmine_test_plugin_foo/config/routes.rb [new file with mode: 0644]
test/fixtures/plugins/redmine_test_plugin_foo/init.rb [new file with mode: 0644]
test/integration/routing/plugins_test.rb

diff --git a/test/fixtures/plugins/redmine_test_plugin_bar/app/controllers/bar_plugin_articles_controller.rb b/test/fixtures/plugins/redmine_test_plugin_bar/app/controllers/bar_plugin_articles_controller.rb
new file mode 100644 (file)
index 0000000..04c72a9
--- /dev/null
@@ -0,0 +1,5 @@
+class BarPluginArticlesController < ApplicationController
+  def index
+    render plain: "bar BarPluginArticlesController#index"
+  end
+end
diff --git a/test/fixtures/plugins/redmine_test_plugin_bar/config/routes.rb b/test/fixtures/plugins/redmine_test_plugin_bar/config/routes.rb
new file mode 100644 (file)
index 0000000..a9200d1
--- /dev/null
@@ -0,0 +1,2 @@
+# same path helper name with foo's
+get '/bar_plugin_articles', as: :plugin_articles, to: 'bar_plugin_articles#index'
diff --git a/test/fixtures/plugins/redmine_test_plugin_bar/init.rb b/test/fixtures/plugins/redmine_test_plugin_bar/init.rb
new file mode 100644 (file)
index 0000000..5b1293e
--- /dev/null
@@ -0,0 +1,10 @@
+Redmine::Plugin.register :redmine_test_plugin_bar do
+  name 'Test plugin redmine_test_plugin_bar'
+  author 'Author name'
+  description 'This is a plugin for Redmine test'
+  version '0.0.1'
+end
+
+Pathname(__dir__).glob("app/**/*.rb").sort.each do |path|
+  require path
+end
diff --git a/test/fixtures/plugins/redmine_test_plugin_foo/app/controllers/plugin_articles_controller.rb b/test/fixtures/plugins/redmine_test_plugin_foo/app/controllers/plugin_articles_controller.rb
new file mode 100644 (file)
index 0000000..1ecdcb8
--- /dev/null
@@ -0,0 +1,5 @@
+class PluginArticlesController < ApplicationController
+  def index
+    render plain: "foo PluginArticlesController#index"
+  end
+end
diff --git a/test/fixtures/plugins/redmine_test_plugin_foo/config/routes.rb b/test/fixtures/plugins/redmine_test_plugin_foo/config/routes.rb
new file mode 100644 (file)
index 0000000..ac7259a
--- /dev/null
@@ -0,0 +1 @@
+resources :plugin_articles, only: %i[index]
diff --git a/test/fixtures/plugins/redmine_test_plugin_foo/init.rb b/test/fixtures/plugins/redmine_test_plugin_foo/init.rb
new file mode 100644 (file)
index 0000000..bdbff5d
--- /dev/null
@@ -0,0 +1,10 @@
+Redmine::Plugin.register :redmine_test_plugin_foo do
+  name 'Test plugin redmine_test_plugin_foo'
+  author 'Author name'
+  description 'This is a plugin for Redmine test'
+  version '0.0.1'
+end
+
+Pathname(__dir__).glob("app/**/*.rb").sort.each do |path|
+  require path
+end
index 155dd7af4ae94b8114676d5e0b0b249e32d8296d..53b10cd0afa4ce88efc1f07c6f2729abe3dfc3ff 100644 (file)
 require File.expand_path('../../test_helper', __dir__)
 
 class RoutingPluginsTest < Redmine::RoutingTest
-  setup do
-    @tmp_plugins_path = Rails.root.join('tmp/test/plugins')
-
-    @setup_plugin_paths = []
-    @setup_plugin_paths << setup_plugin(
-      :redmine_test_plugin_foo,
-      "config/routes.rb" => <<~ROUTES_CONTENT,
-        resources :plugin_articles, only: %i[index]
-      ROUTES_CONTENT
-      "app/controllers/plugin_articles_controller.rb" => <<~CONTROLLER_CONTENT
-        class PluginArticlesController < ApplicationController
-          def index
-            render plain: "foo PluginArticlesController#index"
-          end
-        end
-      CONTROLLER_CONTENT
-    )
-    @setup_plugin_paths << setup_plugin(
-      :redmine_test_plugin_bar,
-      "config/routes.rb" => <<~ROUTES_CONTENT,
-        # same path helper name with foo's
-        get '/bar_plugin_articles', as: :plugin_articles, to: 'bar_plugin_articles#index'
-      ROUTES_CONTENT
-      "app/controllers/bar_plugin_articles_controller.rb" => <<~CONTROLLER_CONTENT
-        class BarPluginArticlesController < ApplicationController
-          def index
-            render plain: "bar BarPluginArticlesController#index"
-          end
-        end
-      CONTROLLER_CONTENT
-    )
-
-    # Change plugin loader's directory for testing
-    Redmine::PluginLoader.directory = @tmp_plugins_path
-    Redmine::PluginLoader.load
-    Redmine::PluginLoader.directories.each(&:run_initializer) # to define relative controllers
-    RedmineApp::Application.instance.routes_reloader.reload!
-  end
-
-  teardown do
-    FileUtils.rm_rf @tmp_plugins_path
-    Redmine::PluginLoader.load
-    RedmineApp::Application.instance.routes_reloader.reload!
-  end
-
   def test_plugins
     should_route 'GET /plugin_articles' => 'plugin_articles#index'
     should_route 'GET /bar_plugin_articles' => 'bar_plugin_articles#index'
     assert_equal("/bar_plugin_articles", plugin_articles_path)
   end
-
-  private
-
-  def setup_plugin(plugin_name, **relative_path_to_content)
-    Redmine::Plugin.directory = @tmp_plugins_path
-    plugin_path =  Redmine::Plugin.directory / plugin_name.to_s
-    plugin_path.mkpath
-    (plugin_path / "init.rb").write(<<~INITRB)
-      Redmine::Plugin.register :#{plugin_name} do
-        name 'Test plugin #{plugin_name}'
-        author 'Author name'
-        description 'This is a plugin for Redmine test'
-        version '0.0.1'
-      end
-
-      Pathname(__dir__).glob("app/**/*.rb").sort.each do |path|
-        require path
-      end
-    INITRB
-
-    relative_path_to_content.each do |relative_path, content|
-      path = plugin_path / relative_path
-      path.parent.mkpath
-      path.write(content)
-    end
-
-    return plugin_path
-  end
 end