diff options
-rw-r--r-- | app/controllers/activities_controller.rb | 7 | ||||
-rw-r--r-- | test/functional/activities_controller_test.rb | 16 |
2 files changed, 22 insertions, 1 deletions
diff --git a/app/controllers/activities_controller.rb b/app/controllers/activities_controller.rb index d80924543..3120d63a5 100644 --- a/app/controllers/activities_controller.rb +++ b/app/controllers/activities_controller.rb @@ -55,7 +55,12 @@ class ActivitiesController < ApplicationController end end - events = @activity.events(@date_from, @date_to) + events = + if params[:format] == 'atom' + @activity.events(nil, nil, :limit => Setting.feeds_limit.to_i) + else + @activity.events(@date_from, @date_to) + end if events.empty? || stale?(:etag => [@activity.scope, @date_to, @date_from, @with_subprojects, @author, events.first, events.size, User.current, current_language]) respond_to do |format| diff --git a/test/functional/activities_controller_test.rb b/test/functional/activities_controller_test.rb index 8d6cc3aca..dbff6a82c 100644 --- a/test/functional/activities_controller_test.rb +++ b/test/functional/activities_controller_test.rb @@ -111,6 +111,22 @@ class ActivitiesControllerTest < Redmine::ControllerTest end end + def test_index_atom_feed_should_respect_feeds_limit_setting + with_settings :feeds_limit => '20' do + get( + :index, + :params => { + :format => 'atom' + } + ) + end + assert_response :success + + assert_select 'feed' do + assert_select 'entry', :count => 20 + end + end + def test_index_atom_feed_with_explicit_selection get :index, :params => { :format => 'atom', |