comparison test/unit/journal_test.rb @ 1115:433d4f72a19b redmine-2.2

Update to Redmine SVN revision 11137 on 2.2-stable branch
author Chris Cannam
date Mon, 07 Jan 2013 12:01:42 +0000
parents cbce1fd3b1b7
children 622f24f53b42 261b3d9a4903
comparison
equal deleted inserted replaced
929:5f33065ddc4b 1115:433d4f72a19b
1 # Redmine - project management software 1 # Redmine - project management software
2 # Copyright (C) 2006-2011 Jean-Philippe Lang 2 # Copyright (C) 2006-2012 Jean-Philippe Lang
3 # 3 #
4 # This program is free software; you can redistribute it and/or 4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License 5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2 6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version. 7 # of the License, or (at your option) any later version.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 require File.expand_path('../../test_helper', __FILE__) 18 require File.expand_path('../../test_helper', __FILE__)
19 19
20 class JournalTest < ActiveSupport::TestCase 20 class JournalTest < ActiveSupport::TestCase
21 fixtures :projects, :issues, :issue_statuses, :journals, :journal_details, :users, :members, :member_roles 21 fixtures :projects, :issues, :issue_statuses, :journals, :journal_details,
22 :users, :members, :member_roles, :roles, :enabled_modules,
23 :projects_trackers, :trackers
22 24
23 def setup 25 def setup
24 @journal = Journal.find 1 26 @journal = Journal.find 1
25 end 27 end
26 28
43 user = User.find(:first) 45 user = User.find(:first)
44 journal = issue.init_journal(user, issue) 46 journal = issue.init_journal(user, issue)
45 47
46 assert journal.save 48 assert journal.save
47 assert_equal 1, ActionMailer::Base.deliveries.size 49 assert_equal 1, ActionMailer::Base.deliveries.size
50 end
51
52 def test_should_not_save_journal_with_blank_notes_and_no_details
53 journal = Journal.new(:journalized => Issue.first, :user => User.first)
54
55 assert_no_difference 'Journal.count' do
56 assert_equal false, journal.save
57 end
58 end
59
60 def test_create_should_not_split_non_private_notes
61 assert_difference 'Journal.count' do
62 assert_no_difference 'JournalDetail.count' do
63 journal = Journal.generate!(:notes => 'Notes')
64 end
65 end
66
67 assert_difference 'Journal.count' do
68 assert_difference 'JournalDetail.count' do
69 journal = Journal.generate!(:notes => 'Notes', :details => [JournalDetail.new])
70 end
71 end
72
73 assert_difference 'Journal.count' do
74 assert_difference 'JournalDetail.count' do
75 journal = Journal.generate!(:notes => '', :details => [JournalDetail.new])
76 end
77 end
78 end
79
80 def test_create_should_split_private_notes
81 assert_difference 'Journal.count' do
82 assert_no_difference 'JournalDetail.count' do
83 journal = Journal.generate!(:notes => 'Notes', :private_notes => true)
84 journal.reload
85 assert_equal true, journal.private_notes
86 assert_equal 'Notes', journal.notes
87 end
88 end
89
90 assert_difference 'Journal.count', 2 do
91 assert_difference 'JournalDetail.count' do
92 journal = Journal.generate!(:notes => 'Notes', :private_notes => true, :details => [JournalDetail.new])
93 journal.reload
94 assert_equal true, journal.private_notes
95 assert_equal 'Notes', journal.notes
96 assert_equal 0, journal.details.size
97
98 journal_with_changes = Journal.order('id DESC').offset(1).first
99 assert_equal false, journal_with_changes.private_notes
100 assert_nil journal_with_changes.notes
101 assert_equal 1, journal_with_changes.details.size
102 assert_equal journal.created_on, journal_with_changes.created_on
103 end
104 end
105
106 assert_difference 'Journal.count' do
107 assert_difference 'JournalDetail.count' do
108 journal = Journal.generate!(:notes => '', :private_notes => true, :details => [JournalDetail.new])
109 journal.reload
110 assert_equal false, journal.private_notes
111 assert_equal '', journal.notes
112 assert_equal 1, journal.details.size
113 end
114 end
48 end 115 end
49 116
50 def test_visible_scope_for_anonymous 117 def test_visible_scope_for_anonymous
51 # Anonymous user should see issues of public projects only 118 # Anonymous user should see issues of public projects only
52 journals = Journal.visible(User.anonymous).all 119 journals = Journal.visible(User.anonymous).all