diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/fixtures/messages.yml | 15 | ||||
-rw-r--r-- | test/fixtures/roles.yml | 2 | ||||
-rw-r--r-- | test/unit/message_test.rb | 20 |
3 files changed, 34 insertions, 3 deletions
diff --git a/test/fixtures/messages.yml b/test/fixtures/messages.yml index f82f376c1..e578853d4 100644 --- a/test/fixtures/messages.yml +++ b/test/fixtures/messages.yml @@ -38,8 +38,8 @@ messages_004: updated_on: 2007-08-12 17:15:32 +02:00
subject: Post 2
id: 4
- replies_count: 1
- last_reply_id: 5
+ replies_count: 2
+ last_reply_id: 6
content: "This is an other post"
author_id:
parent_id:
@@ -55,3 +55,14 @@ messages_005: author_id: 1
parent_id: 4
board_id: 1
+messages_006:
+ created_on: <%= 2.days.ago.to_date.to_s(:db) %>
+ updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
+ subject: 'RE: post 2'
+ id: 6
+ replies_count: 0
+ last_reply_id:
+ content: "Another reply to the second post"
+ author_id: 3
+ parent_id: 4
+ board_id: 1
diff --git a/test/fixtures/roles.yml b/test/fixtures/roles.yml index 5bc6809d7..d8ae2c819 100644 --- a/test/fixtures/roles.yml +++ b/test/fixtures/roles.yml @@ -80,6 +80,8 @@ roles_002: - :protect_wiki_pages
- :delete_wiki_pages
- :add_messages
+ - :edit_own_messages
+ - :delete_own_messages
- :manage_boards
- :view_files
- :manage_files
diff --git a/test/unit/message_test.rb b/test/unit/message_test.rb index 6e8e8fb26..b907cfef3 100644 --- a/test/unit/message_test.rb +++ b/test/unit/message_test.rb @@ -1,7 +1,7 @@ require File.dirname(__FILE__) + '/../test_helper' class MessageTest < Test::Unit::TestCase - fixtures :projects, :boards, :messages, :users, :watchers + fixtures :projects, :roles, :members, :boards, :messages, :users, :watchers def setup @board = Board.find(1) @@ -76,4 +76,22 @@ class MessageTest < Test::Unit::TestCase assert_equal topics_count, board.topics_count assert_equal messages_count - 1, board.messages_count end + + def test_editable_by + message = Message.find(6) + author = message.author + assert message.editable_by?(author) + + author.role_for_project(message.project).remove_permission!(:edit_own_messages) + assert !message.reload.editable_by?(author.reload) + end + + def test_destroyable_by + message = Message.find(6) + author = message.author + assert message.destroyable_by?(author) + + author.role_for_project(message.project).remove_permission!(:delete_own_messages) + assert !message.reload.destroyable_by?(author.reload) + end end |