summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/fixtures/messages.yml15
-rw-r--r--test/fixtures/roles.yml2
-rw-r--r--test/unit/message_test.rb20
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