summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2008-04-01 17:43:20 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2008-04-01 17:43:20 +0000
commit80a5ad7ff344b9c5047a1990f6af19f97c4bd680 (patch)
tree3a60289aa11e18585a74dd4bac0f5a148cfa3f55
parent68fe7856c9218d0bfa5c4cf468e7120cf2c964d4 (diff)
downloadredmine-80a5ad7ff344b9c5047a1990f6af19f97c4bd680.tar.gz
redmine-80a5ad7ff344b9c5047a1990f6af19f97c4bd680.zip
Fixed: Boards are not deleted when project is deleted (closes #963).
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1316 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/project.rb2
-rw-r--r--test/unit/project_test.rb9
2 files changed, 7 insertions, 4 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index a223b35f0..eaa33c969 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -33,7 +33,7 @@ class Project < ActiveRecord::Base
has_many :documents, :dependent => :destroy
has_many :news, :dependent => :delete_all, :include => :author
has_many :issue_categories, :dependent => :delete_all, :order => "#{IssueCategory.table_name}.name"
- has_many :boards, :order => "position ASC"
+ has_many :boards, :dependent => :destroy, :order => "position ASC"
has_one :repository, :dependent => :destroy
has_many :changesets, :through => :repository
has_one :wiki, :dependent => :destroy
diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb
index f7da6ecb5..9af68c231 100644
--- a/test/unit/project_test.rb
+++ b/test/unit/project_test.rb
@@ -18,7 +18,7 @@
require File.dirname(__FILE__) + '/../test_helper'
class ProjectTest < Test::Unit::TestCase
- fixtures :projects, :issues, :issue_statuses, :journals, :journal_details, :users, :members, :roles, :projects_trackers, :trackers
+ fixtures :projects, :issues, :issue_statuses, :journals, :journal_details, :users, :members, :roles, :projects_trackers, :trackers, :boards
def setup
@ecookbook = Project.find(1)
@@ -84,12 +84,15 @@ class ProjectTest < Test::Unit::TestCase
assert_equal 2, @ecookbook.members.size
# and 1 is locked
assert_equal 3, Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).size
+ # some boards
+ assert @ecookbook.boards.any?
@ecookbook.destroy
# make sure that the project non longer exists
assert_raise(ActiveRecord::RecordNotFound) { Project.find(@ecookbook.id) }
- # make sure all members have been removed
- assert_equal 0, Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).size
+ # make sure related data was removed
+ assert Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?
+ assert Board.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?
end
def test_subproject_ok