summaryrefslogtreecommitdiffstats
path: root/test/unit/activity_test.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2015-01-18 09:07:42 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2015-01-18 09:07:42 +0000
commit886b9c14d0cb16e5ae132bdea545ddea771f7284 (patch)
tree9f88bcf5aa5c727912dc91e19a57212893c2f66e /test/unit/activity_test.rb
parent5190fef9d61d20a5911dbeb7a35bdbee5e3c90d8 (diff)
downloadredmine-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.rb60
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={})