summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2008-07-12 09:42:18 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2008-07-12 09:42:18 +0000
commitb5444b5fcd84008a67a5486e373813dec1a371c8 (patch)
treef58ad67836e17ef31b29004c2d0fb2710845e2b8
parent622b6121f48f0c3579502d2a9fb4975618177cec (diff)
downloadredmine-b5444b5fcd84008a67a5486e373813dec1a371c8.tar.gz
redmine-b5444b5fcd84008a67a5486e373813dec1a371c8.zip
Fixed: no :author method error on projects atom feed (#1623).
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1653 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/project.rb3
-rw-r--r--test/functional/projects_controller_test.rb8
-rw-r--r--vendor/plugins/acts_as_event/lib/acts_as_event.rb15
3 files changed, 18 insertions, 8 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 67e6c0e39..5679344bc 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -48,7 +48,8 @@ class Project < ActiveRecord::Base
acts_as_customizable
acts_as_searchable :columns => ['name', 'description'], :project_key => 'id', :permission => nil
acts_as_event :title => Proc.new {|o| "#{l(:label_project)}: #{o.name}"},
- :url => Proc.new {|o| {:controller => 'projects', :action => 'show', :id => o.id}}
+ :url => Proc.new {|o| {:controller => 'projects', :action => 'show', :id => o.id}},
+ :author => nil
attr_protected :status, :enabled_module_names
diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb
index 88a9fae60..f5f1c6733 100644
--- a/test/functional/projects_controller_test.rb
+++ b/test/functional/projects_controller_test.rb
@@ -42,6 +42,14 @@ class ProjectsControllerTest < Test::Unit::TestCase
# Subproject in corresponding value
assert assigns(:project_tree)[Project.find(1)].include?(Project.find(3))
end
+
+ def test_index_atom
+ get :index, :format => 'atom'
+ assert_response :success
+ assert_template 'common/feed.atom.rxml'
+ assert_select 'feed>title', :text => 'Redmine: Latest projects'
+ assert_select 'feed>entry', :count => Project.count(:conditions => Project.visible_by(User.current))
+ end
def test_show_by_id
get :show, :id => 1
diff --git a/vendor/plugins/acts_as_event/lib/acts_as_event.rb b/vendor/plugins/acts_as_event/lib/acts_as_event.rb
index d7f437a5e..0b7ad21f5 100644
--- a/vendor/plugins/acts_as_event/lib/acts_as_event.rb
+++ b/vendor/plugins/acts_as_event/lib/acts_as_event.rb
@@ -25,14 +25,15 @@ module Redmine
module ClassMethods
def acts_as_event(options = {})
return if self.included_modules.include?(Redmine::Acts::Event::InstanceMethods)
- options[:datetime] ||= :created_on
- options[:title] ||= :title
- options[:description] ||= :description
- options[:author] ||= :author
- options[:url] ||= {:controller => 'welcome'}
- options[:type] ||= self.name.underscore.dasherize
+ default_options = { :datetime => :created_on,
+ :title => :title,
+ :description => :description,
+ :author => :author,
+ :url => {:controller => 'welcome'},
+ :type => self.name.underscore.dasherize }
+
cattr_accessor :event_options
- self.event_options = options
+ self.event_options = default_options.merge(options)
send :include, Redmine::Acts::Event::InstanceMethods
end
end