]> source.dussan.org Git - redmine.git/commitdiff
Code cleanup: implement Plugin#to_param for generating routes.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 13 Dec 2012 13:52:56 +0000 (13:52 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 13 Dec 2012 13:52:56 +0000 (13:52 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10995 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/settings_controller.rb
app/views/admin/plugins.html.erb
lib/redmine/plugin.rb
test/functional/admin_controller_test.rb

index e3a2c6d2615bfb7c731e9e3712ae9a1015e15def..f5e6305de64e2aecaa517ccaa73090535224ff99 100644 (file)
@@ -55,7 +55,7 @@ class SettingsController < ApplicationController
     if request.post?
       Setting.send "plugin_#{@plugin.id}=", params[:settings]
       flash[:notice] = l(:notice_successful_update)
-      redirect_to plugin_settings_path(@plugin.id)
+      redirect_to plugin_settings_path(@plugin)
     else
       @partial = @plugin.settings[:partial]
       @settings = Setting.send "plugin_#{@plugin.id}"
index f4e4d2b92f3c64cd6ae08fd5d38c137059dae0b8..25716ff9e9b165b65fa8e7ead42d1fbb73e6e2ea 100644 (file)
@@ -3,14 +3,14 @@
 <% if @plugins.any? %>
 <table class="list plugins">
     <% @plugins.each do |plugin| %>
-        <tr class="<%= cycle('odd', 'even') %>">
+        <tr id="plugin-<%= plugin.id %>" class="<%= cycle('odd', 'even') %>">
         <td><span class="name"><%=h plugin.name %></span>
             <%= content_tag('span', h(plugin.description), :class => 'description') unless plugin.description.blank? %>
             <%= content_tag('span', link_to(h(plugin.url), plugin.url), :class => 'url') unless plugin.url.blank? %>
         </td>
         <td class="author"><%= plugin.author_url.blank? ? h(plugin.author) : link_to(h(plugin.author), plugin.author_url) %></td>
         <td class="version"><%=h plugin.version %></td>
-        <td class="configure"><%= link_to(l(:button_configure), :controller => 'settings', :action => 'plugin', :id => plugin.id) if plugin.configurable? %></td>
+        <td class="configure"><%= link_to(l(:button_configure), plugin_settings_path(plugin)) if plugin.configurable? %></td>
         </tr>
     <% end %>
 </table>
index ceb6d70970cc66c5e736df5746e6e2021128f3f2..e8eab3ef2a519de2fc2b951bed1c8f3dd39ba3ed 100644 (file)
@@ -145,6 +145,10 @@ module Redmine #:nodoc:
       File.join(self.class.public_directory, id.to_s)
     end
 
+    def to_param
+      id
+    end
+
     def assets_directory
       File.join(directory, 'assets')
     end
index 28e8adb60b77ac6f3f6f3c20b6cbef99146b3ccb..7a029722baf29af55687f6ea4e6abfb908a0bfab 100644 (file)
@@ -27,15 +27,13 @@ class AdminControllerTest < ActionController::TestCase
 
   def test_index
     get :index
-    assert_no_tag :tag => 'div',
-                  :attributes => { :class => /nodata/ }
+    assert_select 'div.nodata', 0
   end
 
   def test_index_with_no_configuration_data
     delete_configuration_data
     get :index
-    assert_tag :tag => 'div',
-               :attributes => { :class => /nodata/ }
+    assert_select 'div.nodata'
   end
 
   def test_projects
@@ -128,8 +126,14 @@ class AdminControllerTest < ActionController::TestCase
     assert_response :success
     assert_template 'plugins'
 
-    assert_tag :td, :child => { :tag => 'span', :content => 'Foo plugin' }
-    assert_tag :td, :child => { :tag => 'span', :content => 'Bar' }
+    assert_select 'tr#plugin-foo' do
+      assert_select 'td span.name', :text => 'Foo plugin'
+      assert_select 'td.configure a[href=/settings/plugin/foo]'
+    end
+    assert_select 'tr#plugin-bar' do
+      assert_select 'td span.name', :text => 'Bar'
+      assert_select 'td.configure a', 0
+    end
   end
 
   def test_info
@@ -145,8 +149,7 @@ class AdminControllerTest < ActionController::TestCase
 
     get :index
     assert_response :success
-    assert_tag :a, :attributes => { :href => '/foo/bar' },
-                   :content => 'Test'
+    assert_select 'div#admin-menu a[href=/foo/bar]', :text => 'Test'
 
     Redmine::MenuManager.map :admin_menu do |menu|
       menu.delete :test_admin_menu_plugin_extension