From fa95501fe5e8c97de4f5960c4eeecfe70d4455f2 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Thu, 8 Nov 2007 19:00:37 +0000 Subject: Added issues status changes on the activity view (initial patch by Cyril Mougel). git-svn-id: http://redmine.rubyforge.org/svn/trunk@892 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- test/unit/journal_test.rb | 39 ++++++++ test/unit/project_test.rb | 223 ++++++++++++++++++++++++---------------------- 2 files changed, 155 insertions(+), 107 deletions(-) create mode 100644 test/unit/journal_test.rb (limited to 'test/unit') diff --git a/test/unit/journal_test.rb b/test/unit/journal_test.rb new file mode 100644 index 000000000..b177f3198 --- /dev/null +++ b/test/unit/journal_test.rb @@ -0,0 +1,39 @@ +# redMine - project management software +# Copyright (C) 2006-2007 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.dirname(__FILE__) + '/../test_helper' + +class JournalTest < Test::Unit::TestCase + fixtures :issues, :issue_statuses, :journals, :journal_details + + def setup + @journal = Journal.find 1 + end + + def test_journalized_is_an_issue + issue = @journal.issue + assert_kind_of Issue, issue + assert_equal 1, issue.id + end + + def test_new_status + status = @journal.new_status + assert_not_nil status + assert_kind_of IssueStatus, status + assert_equal 2, status.id + end +end diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb index 14612d306..a8cf46e4f 100644 --- a/test/unit/project_test.rb +++ b/test/unit/project_test.rb @@ -1,107 +1,116 @@ -# redMine - project management software -# Copyright (C) 2006-2007 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.dirname(__FILE__) + '/../test_helper' - -class ProjectTest < Test::Unit::TestCase - fixtures :projects - - def setup - @ecookbook = Project.find(1) - @ecookbook_sub1 = Project.find(3) - end - - def test_truth - assert_kind_of Project, @ecookbook - assert_equal "eCookbook", @ecookbook.name - end - - def test_update - assert_equal "eCookbook", @ecookbook.name - @ecookbook.name = "eCook" - assert @ecookbook.save, @ecookbook.errors.full_messages.join("; ") - @ecookbook.reload - assert_equal "eCook", @ecookbook.name - end - - def test_validate - @ecookbook.name = "" - assert !@ecookbook.save - assert_equal 1, @ecookbook.errors.count - assert_equal "activerecord_error_blank", @ecookbook.errors.on(:name) - end - - def test_public_projects - public_projects = Project.find(:all, :conditions => ["is_public=?", true]) - assert_equal 3, public_projects.length - assert_equal true, public_projects[0].is_public? - end - - def test_archive - user = @ecookbook.members.first.user - @ecookbook.archive - @ecookbook.reload - - assert !@ecookbook.active? - assert !user.projects.include?(@ecookbook) - # Subproject are also archived - assert !@ecookbook.children.empty? - assert @ecookbook.active_children.empty? - end - - def test_unarchive - user = @ecookbook.members.first.user - @ecookbook.archive - # A subproject of an archived project can not be unarchived - assert !@ecookbook_sub1.unarchive - - # Unarchive project - assert @ecookbook.unarchive - @ecookbook.reload - assert @ecookbook.active? - assert user.projects.include?(@ecookbook) - # Subproject can now be unarchived - @ecookbook_sub1.reload - assert @ecookbook_sub1.unarchive - end - - def test_destroy - @ecookbook.destroy - assert_raise(ActiveRecord::RecordNotFound) { Project.find(@ecookbook.id) } - end - - def test_subproject_ok - sub = Project.find(2) - sub.parent = @ecookbook - assert sub.save - assert_equal @ecookbook.id, sub.parent.id - @ecookbook.reload - assert_equal 3, @ecookbook.children.size - end - - def test_subproject_invalid - sub = Project.find(2) - sub.parent = @ecookbook_sub1 - assert !sub.save - end - - def test_subproject_invalid_2 - sub = @ecookbook - sub.parent = Project.find(2) - assert !sub.save - end -end +# redMine - project management software +# Copyright (C) 2006-2007 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.dirname(__FILE__) + '/../test_helper' + +class ProjectTest < Test::Unit::TestCase + fixtures :projects, :issues, :issue_statuses, :journals, :journal_details + + def setup + @ecookbook = Project.find(1) + @ecookbook_sub1 = Project.find(3) + end + + def test_truth + assert_kind_of Project, @ecookbook + assert_equal "eCookbook", @ecookbook.name + end + + def test_update + assert_equal "eCookbook", @ecookbook.name + @ecookbook.name = "eCook" + assert @ecookbook.save, @ecookbook.errors.full_messages.join("; ") + @ecookbook.reload + assert_equal "eCook", @ecookbook.name + end + + def test_validate + @ecookbook.name = "" + assert !@ecookbook.save + assert_equal 1, @ecookbook.errors.count + assert_equal "activerecord_error_blank", @ecookbook.errors.on(:name) + end + + def test_public_projects + public_projects = Project.find(:all, :conditions => ["is_public=?", true]) + assert_equal 3, public_projects.length + assert_equal true, public_projects[0].is_public? + end + + def test_archive + user = @ecookbook.members.first.user + @ecookbook.archive + @ecookbook.reload + + assert !@ecookbook.active? + assert !user.projects.include?(@ecookbook) + # Subproject are also archived + assert !@ecookbook.children.empty? + assert @ecookbook.active_children.empty? + end + + def test_unarchive + user = @ecookbook.members.first.user + @ecookbook.archive + # A subproject of an archived project can not be unarchived + assert !@ecookbook_sub1.unarchive + + # Unarchive project + assert @ecookbook.unarchive + @ecookbook.reload + assert @ecookbook.active? + assert user.projects.include?(@ecookbook) + # Subproject can now be unarchived + @ecookbook_sub1.reload + assert @ecookbook_sub1.unarchive + end + + def test_destroy + @ecookbook.destroy + assert_raise(ActiveRecord::RecordNotFound) { Project.find(@ecookbook.id) } + end + + def test_subproject_ok + sub = Project.find(2) + sub.parent = @ecookbook + assert sub.save + assert_equal @ecookbook.id, sub.parent.id + @ecookbook.reload + assert_equal 3, @ecookbook.children.size + end + + def test_subproject_invalid + sub = Project.find(2) + sub.parent = @ecookbook_sub1 + assert !sub.save + end + + def test_subproject_invalid_2 + sub = @ecookbook + sub.parent = Project.find(2) + assert !sub.save + end + + def test_issues_status_changes + journals = @ecookbook.issues_status_changes 3.days.ago.to_date, Date.today + assert_equal 1, journals.size + assert_kind_of Journal, journals.first + + journals = @ecookbook.issues_status_changes 30.days.ago.to_date, 10.days.ago.to_date + assert_equal 0, journals.size + end +end -- cgit v1.2.3