diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-01-18 09:07:42 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-01-18 09:07:42 +0000 |
commit | 886b9c14d0cb16e5ae132bdea545ddea771f7284 (patch) | |
tree | 9f88bcf5aa5c727912dc91e19a57212893c2f66e /test/unit/activity_test.rb | |
parent | 5190fef9d61d20a5911dbeb7a35bdbee5e3c90d8 (diff) | |
download | redmine-886b9c14d0cb16e5ae132bdea545ddea771f7284.tar.gz redmine-886b9c14d0cb16e5ae132bdea545ddea771f7284.zip |
Fixed that Redmine::Activity::Fetcher should consider activity provider permission option if given (#18832).
git-svn-id: http://svn.redmine.org/redmine/trunk@13895 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/unit/activity_test.rb')
-rw-r--r-- | test/unit/activity_test.rb | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/unit/activity_test.rb b/test/unit/activity_test.rb index a66d632dd..afb5a111c 100644 --- a/test/unit/activity_test.rb +++ b/test/unit/activity_test.rb @@ -121,6 +121,66 @@ class ActivityTest < ActiveSupport::TestCase assert_equal content.page, content.event_group end + class TestActivityProviderWithPermission + def self.activity_provider_options + {'test' => {:permission => :custom_permission}} + end + end + + class TestActivityProviderWithNilPermission + def self.activity_provider_options + {'test' => {:permission => nil}} + end + end + + class TestActivityProviderWithoutPermission + def self.activity_provider_options + {'test' => {}} + end + end + + class MockUser + def initialize(*permissions) + @permissions = permissions + end + + def allowed_to?(permission, *args) + @permissions.include?(permission) + end + end + + def test_event_types_should_consider_activity_provider_permission + Redmine::Activity.register 'test', :class_name => 'ActivityTest::TestActivityProviderWithPermission' + user = MockUser.new(:custom_permission) + f = Redmine::Activity::Fetcher.new(user, :project => Project.find(1)) + assert_include 'test', f.event_types + ensure + Redmine::Activity.delete 'test' + end + + def test_event_types_should_include_activity_provider_with_nil_permission + Redmine::Activity.register 'test', :class_name => 'ActivityTest::TestActivityProviderWithNilPermission' + user = MockUser.new() + f = Redmine::Activity::Fetcher.new(user, :project => Project.find(1)) + assert_include 'test', f.event_types + ensure + Redmine::Activity.delete 'test' + end + + def test_event_types_should_use_default_permission_for_activity_provider_without_permission + Redmine::Activity.register 'test', :class_name => 'ActivityTest::TestActivityProviderWithoutPermission' + + user = MockUser.new() + f = Redmine::Activity::Fetcher.new(user, :project => Project.find(1)) + assert_not_include 'test', f.event_types + + user = MockUser.new(:view_test) + f = Redmine::Activity::Fetcher.new(user, :project => Project.find(1)) + assert_include 'test', f.event_types + ensure + Redmine::Activity.delete 'test' + end + private def find_events(user, options={}) |