summaryrefslogtreecommitdiffstats
path: root/test/unit
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/journal_test.rb65
-rw-r--r--test/unit/mail_handler_test.rb15
-rw-r--r--test/unit/mailer_test.rb14
3 files changed, 94 insertions, 0 deletions
diff --git a/test/unit/journal_test.rb b/test/unit/journal_test.rb
index 2a7d5f46a..a2669cec1 100644
--- a/test/unit/journal_test.rb
+++ b/test/unit/journal_test.rb
@@ -47,6 +47,71 @@ class JournalTest < ActiveSupport::TestCase
assert_equal 1, ActionMailer::Base.deliveries.size
end
+ def test_should_not_save_journal_with_blank_notes_and_no_details
+ journal = Journal.new(:journalized => Issue.first, :user => User.first)
+
+ assert_no_difference 'Journal.count' do
+ assert_equal false, journal.save
+ end
+ end
+
+ def test_create_should_not_split_non_private_notes
+ assert_difference 'Journal.count' do
+ assert_no_difference 'JournalDetail.count' do
+ journal = Journal.generate!(:notes => 'Notes')
+ end
+ end
+
+ assert_difference 'Journal.count' do
+ assert_difference 'JournalDetail.count' do
+ journal = Journal.generate!(:notes => 'Notes', :details => [JournalDetail.new])
+ end
+ end
+
+ assert_difference 'Journal.count' do
+ assert_difference 'JournalDetail.count' do
+ journal = Journal.generate!(:notes => '', :details => [JournalDetail.new])
+ end
+ end
+ end
+
+ def test_create_should_split_private_notes
+ assert_difference 'Journal.count' do
+ assert_no_difference 'JournalDetail.count' do
+ journal = Journal.generate!(:notes => 'Notes', :private_notes => true)
+ journal.reload
+ assert_equal true, journal.private_notes
+ assert_equal 'Notes', journal.notes
+ end
+ end
+
+ assert_difference 'Journal.count', 2 do
+ assert_difference 'JournalDetail.count' do
+ journal = Journal.generate!(:notes => 'Notes', :private_notes => true, :details => [JournalDetail.new])
+ journal.reload
+ assert_equal true, journal.private_notes
+ assert_equal 'Notes', journal.notes
+ assert_equal 0, journal.details.size
+
+ journal_with_changes = Journal.order('id DESC').offset(1).first
+ assert_equal false, journal_with_changes.private_notes
+ assert_nil journal_with_changes.notes
+ assert_equal 1, journal_with_changes.details.size
+ assert_equal journal.created_on, journal_with_changes.created_on
+ end
+ end
+
+ assert_difference 'Journal.count' do
+ assert_difference 'JournalDetail.count' do
+ journal = Journal.generate!(:notes => '', :private_notes => true, :details => [JournalDetail.new])
+ journal.reload
+ assert_equal false, journal.private_notes
+ assert_equal '', journal.notes
+ assert_equal 1, journal.details.size
+ end
+ end
+ end
+
def test_visible_scope_for_anonymous
# Anonymous user should see issues of public projects only
journals = Journal.visible(User.anonymous).all
diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb
index 49b5d896f..a1e5b8178 100644
--- a/test/unit/mail_handler_test.rb
+++ b/test/unit/mail_handler_test.rb
@@ -435,6 +435,7 @@ class MailHandlerTest < ActiveSupport::TestCase
assert_equal User.find_by_login('jsmith'), journal.user
assert_equal Issue.find(2), journal.journalized
assert_match /This is reply/, journal.notes
+ assert_equal false, journal.private_notes
assert_equal 'Feature request', journal.issue.tracker.name
end
@@ -496,6 +497,20 @@ class MailHandlerTest < ActiveSupport::TestCase
assert_equal 'Normal', journal.issue.priority.name
end
+ def test_replying_to_a_private_note_should_add_reply_as_private
+ private_journal = Journal.create!(:notes => 'Private notes', :journalized => Issue.find(1), :private_notes => true, :user_id => 2)
+
+ assert_difference 'Journal.count' do
+ journal = submit_email('ticket_reply.eml') do |email|
+ email.sub! %r{^In-Reply-To:.*$}, "In-Reply-To: <redmine.journal-#{private_journal.id}.20060719210421@osiris>"
+ end
+
+ assert_kind_of Journal, journal
+ assert_match /This is reply/, journal.notes
+ assert_equal true, journal.private_notes
+ end
+ end
+
def test_reply_to_a_message
m = submit_email('message_reply.eml')
assert m.is_a?(Message)
diff --git a/test/unit/mailer_test.rb b/test/unit/mailer_test.rb
index efde01f5c..8d65cc5b7 100644
--- a/test/unit/mailer_test.rb
+++ b/test/unit/mailer_test.rb
@@ -336,6 +336,20 @@ class MailerTest < ActiveSupport::TestCase
end
end
+ def test_issue_edit_should_send_private_notes_to_users_with_permission_only
+ journal = Journal.find(1)
+ journal.private_notes = true
+ journal.save!
+
+ Role.find(2).add_permission! :view_private_notes
+ Mailer.issue_edit(journal).deliver
+ assert_equal %w(dlopper@somenet.foo jsmith@somenet.foo), ActionMailer::Base.deliveries.last.bcc.sort
+
+ Role.find(2).remove_permission! :view_private_notes
+ Mailer.issue_edit(journal).deliver
+ assert_equal %w(jsmith@somenet.foo), ActionMailer::Base.deliveries.last.bcc.sort
+ end
+
def test_document_added
document = Document.find(1)
valid_languages.each do |lang|