2011-03-20 11:46:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Redmine - project management software 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-12 09:29:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Copyright (C) 2006-2013  Jean-Philippe Lang 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# 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. 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# 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. 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# 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. 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-03 21:25:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-12-12 23:24:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								require  File . expand_path ( '../../test_helper' ,  __FILE__ ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-03 21:25:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  ProjectTest  <  ActiveSupport :: TestCase 
							 
						 
					
						
							
								
									
										
										
										
											2011-09-24 23:57:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  fixtures  :projects ,  :trackers ,  :issue_statuses ,  :issues , 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-26 12:35:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           :journals ,  :journal_details , 
							 
						 
					
						
							
								
									
										
										
										
											2011-09-24 23:57:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           :enumerations ,  :users ,  :issue_categories , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :projects_trackers , 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-26 12:35:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           :custom_fields , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :custom_fields_projects , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :custom_fields_trackers , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :custom_values , 
							 
						 
					
						
							
								
									
										
										
										
											2011-09-24 23:57:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           :roles , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :member_roles , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :members , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :enabled_modules , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :versions , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :wikis ,  :wiki_pages ,  :wiki_contents ,  :wiki_content_versions , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :groups_users , 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-27 22:30:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           :boards ,  :messages , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :repositories , 
							 
						 
					
						
							
								
									
										
										
										
											2012-11-01 22:47:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           :news ,  :comments , 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-27 22:30:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           :documents 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  setup 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @ecookbook  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @ecookbook_sub1  =  Project . find ( 3 ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-16 17:52:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    set_tmp_attachments_directory 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-15 13:22:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    User . current  =  nil 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_truth 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_kind_of  Project ,  @ecookbook 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  " eCookbook " ,  @ecookbook . name 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-12-03 16:15:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_default_attributes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :default_projects_public  = >  '1'  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  true ,  Project . new . is_public 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  false ,  Project . new ( :is_public  = >  false ) . is_public 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :default_projects_public  = >  '0'  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  false ,  Project . new . is_public 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  true ,  Project . new ( :is_public  = >  true ) . is_public 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :sequential_project_identifiers  = >  '1'  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert  ! Project . new . identifier . blank? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert  Project . new ( :identifier  = >  '' ) . identifier . blank? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :sequential_project_identifiers  = >  '0'  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert  Project . new . identifier . blank? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert  ! Project . new ( :identifier  = >  'test' ) . blank? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :default_projects_modules  = >  [ 'issue_tracking' ,  'repository' ]  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  [ 'issue_tracking' ,  'repository' ] ,  Project . new . enabled_module_names 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-15 08:28:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_default_trackers_should_match_default_tracker_ids_setting 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :default_projects_tracker_ids  = >  [ '1' ,  '3' ]  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  Tracker . find ( 1 ,  3 ) . sort ,  Project . new . trackers . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-15 08:28:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_default_trackers_should_be_all_trackers_with_blank_setting 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :default_projects_tracker_ids  = >  nil  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  Tracker . all . sort ,  Project . new . trackers . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_default_trackers_should_be_empty_with_empty_setting 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :default_projects_tracker_ids  = >  [ ]  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  [ ] ,  Project . new . trackers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_default_trackers_should_not_replace_initialized_trackers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :default_projects_tracker_ids  = >  [ '1' ,  '3' ]  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  Tracker . find ( 1 ,  2 ) . sort ,  Project . new ( :tracker_ids  = >  [ 1 ,  2 ] ) . trackers . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-03 16:15:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  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 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_validate_identifier 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    to_test  =  { " abc "  = >  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               " ab12 "  = >  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               " ab-12 "  = >  true , 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-27 17:34:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								               " ab_12 "  = >  true , 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								               " 12 "  = >  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               " new "  = >  false } 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    to_test . each  do  | identifier ,  valid | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      p  =  Project . new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      p . identifier  =  identifier 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      p . valid? 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-26 12:42:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      if  valid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        assert  p . errors [ 'identifier' ] . blank? ,  " identifier  #{ identifier }  was not valid " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        assert  p . errors [ 'identifier' ] . present? ,  " identifier  #{ identifier }  was valid " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      end 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-19 00:27:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-25 16:43:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_identifier_should_not_be_frozen_for_a_new_project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  false ,  Project . new . identifier_frozen? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_identifier_should_not_be_frozen_for_a_saved_project_with_blank_identifier 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-09 04:24:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    Project . where ( :id  = >  1 ) . update_all ( [ " identifier = '' " ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-25 16:43:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  false ,  Project . find ( 1 ) . identifier_frozen? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_identifier_should_be_frozen_for_a_saved_project_with_valid_identifier 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  true ,  Project . find ( 1 ) . identifier_frozen? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_members_should_be_active_users 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . all . each  do  | project | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_nil  project . members . detect  { | m |  ! ( m . user . is_a? ( User )  &&  m . user . active? )  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_users_should_be_active_users 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . all . each  do  | project | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_nil  project . users . detect  { | u |  ! ( u . is_a? ( User )  &&  u . active? )  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-08-13 14:23:33 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_open_scope_on_issues_association 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_kind_of  Issue ,  Project . find ( 1 ) . issues . open . first 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_archive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    user  =  @ecookbook . members . first . user 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @ecookbook . archive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @ecookbook . reload 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  ! @ecookbook . active? 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-23 09:48:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  @ecookbook . archived? 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  ! user . projects . include? ( @ecookbook ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Subproject are also archived 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! @ecookbook . children . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  @ecookbook . descendants . active . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_archive_should_fail_if_versions_are_used_by_non_descendant_projects 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Assign an issue of a project to a version of a child project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . find ( 4 ) . update_attribute  :fixed_version_id ,  4 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-06-12 19:13:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_no_difference  " Project.where(:status => Project::STATUS_ARCHIVED).count "  do 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      assert_equal  false ,  @ecookbook . archive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @ecookbook . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  @ecookbook . active? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_unarchive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    user  =  @ecookbook . members . first . user 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @ecookbook . archive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # A subproject of an archived project can not be unarchived 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! @ecookbook_sub1 . unarchive 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # Unarchive project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  @ecookbook . unarchive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @ecookbook . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  @ecookbook . active? 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-23 09:48:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  ! @ecookbook . archived? 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  user . projects . include? ( @ecookbook ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Subproject can now be unarchived 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @ecookbook_sub1 . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  @ecookbook_sub1 . unarchive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_destroy 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # 2 active members 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  2 ,  @ecookbook . members . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # and 1 is locked 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-09 04:30:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  3 ,  Member . where ( :project_id  = >  @ecookbook . id ) . count 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # some boards 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  @ecookbook . boards . any? 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    @ecookbook . destroy 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # make sure that the project non longer exists 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_raise ( ActiveRecord :: RecordNotFound )  {  Project . find ( @ecookbook . id )  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # make sure related data was removed 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-12 19:13:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_nil  Member . where ( :project_id  = >  @ecookbook . id ) . first 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  Board . where ( :project_id  = >  @ecookbook . id ) . first 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  Issue . where ( :project_id  = >  @ecookbook . id ) . first 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-18 17:16:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_destroy_should_destroy_subtasks 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  ( 0 .. 2 ) . to_a . map  { Issue . create! ( :project_id  = >  1 ,  :tracker_id  = >  1 ,  :author_id  = >  1 ,  :subject  = >  'test' ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues [ 0 ] . update_attribute  :parent_issue_id ,  issues [ 1 ] . id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues [ 2 ] . update_attribute  :parent_issue_id ,  issues [ 1 ] . id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  2 ,  issues [ 1 ] . children . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nothing_raised  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      Project . find ( 1 ) . destroy 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-09 05:09:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Issue . where ( :id  = >  issues . map ( & :id ) ) . count 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-18 17:16:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-20 11:46:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_destroying_root_projects_should_clear_data 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . roots . each  do  | root | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      root . destroy 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-20 11:46:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Project . count ,  " Projects were not deleted:  #{ Project . all . inspect } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Member . count ,  " Members were not deleted:  #{ Member . all . inspect } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  MemberRole . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Issue . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Journal . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  JournalDetail . count 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-27 22:30:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Attachment . count ,  " Attachments were not deleted:  #{ Attachment . all . inspect } " 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-20 11:46:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  EnabledModule . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  IssueCategory . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  IssueRelation . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Board . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Message . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  News . count 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-12 19:13:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Query . where ( " project_id IS NOT NULL " ) . count 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-20 11:46:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Repository . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Changeset . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Change . count 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-20 20:26:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Comment . count 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-20 11:46:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  TimeEntry . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Version . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Watcher . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Wiki . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  WikiPage . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  WikiContent . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  WikiContent :: Version . count 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-26 10:45:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Project . connection . select_all ( " SELECT * FROM projects_trackers " ) . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  Project . connection . select_all ( " SELECT * FROM custom_fields_projects " ) . count 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-12 19:13:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  CustomValue . where ( :customized_type  = >  [ 'Project' ,  'Issue' ,  'TimeEntry' ,  'Version' ] ) . count 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-20 11:46:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-12-18 18:39:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_destroy_should_delete_time_entries_custom_values 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    time_entry  =  TimeEntry . generate! ( :project  = >  project ,  :custom_field_values  = >  { 10  = >  '1' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_difference  'CustomValue.where(:customized_type => "TimeEntry").count' ,  - 1  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert  project . destroy 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_move_an_orphan_project_to_a_root_project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    sub  =  Project . find ( 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    sub . set_parent!  @ecookbook 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  @ecookbook . id ,  sub . parent . id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @ecookbook . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  4 ,  @ecookbook . children . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_move_an_orphan_project_to_a_subproject 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    sub  =  Project . find ( 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  sub . set_parent! ( @ecookbook_sub1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_move_a_root_project_to_a_project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    sub  =  @ecookbook 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  sub . set_parent! ( Project . find ( 2 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_should_not_move_a_project_to_its_children 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    sub  =  @ecookbook 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! ( sub . set_parent! ( Project . find ( 3 ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_set_parent_should_add_roots_in_alphabetical_order 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ProjectCustomField . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . create! ( :name  = >  'Project C' ,  :identifier  = >  'project-c' ) . set_parent! ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . create! ( :name  = >  'Project B' ,  :identifier  = >  'project-b' ) . set_parent! ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . create! ( :name  = >  'Project D' ,  :identifier  = >  'project-d' ) . set_parent! ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . create! ( :name  = >  'Project A' ,  :identifier  = >  'project-a' ) . set_parent! ( nil ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  4 ,  Project . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  Project . all . sort_by ( & :name ) ,  Project . all . sort_by ( & :lft ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_set_parent_should_add_children_in_alphabetical_order 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ProjectCustomField . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent  =  Project . create! ( :name  = >  'Parent' ,  :identifier  = >  'parent' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . create! ( :name  = >  'Project C' ,  :identifier  = >  'project-c' ) . set_parent! ( parent ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . create! ( :name  = >  'Project B' ,  :identifier  = >  'project-b' ) . set_parent! ( parent ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . create! ( :name  = >  'Project D' ,  :identifier  = >  'project-d' ) . set_parent! ( parent ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . create! ( :name  = >  'Project A' ,  :identifier  = >  'project-a' ) . set_parent! ( parent ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    parent . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  4 ,  parent . children . size 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-26 12:37:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  parent . children . all . sort_by ( & :name ) ,  parent . children . all 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_set_parent_should_update_issue_fixed_version_associations_when_a_fixed_version_is_moved_out_of_the_hierarchy 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Parent issue with a hierarchy project's fixed version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_issue  =  Issue . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_issue . update_attribute ( :fixed_version_id ,  4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_issue . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  4 ,  parent_issue . fixed_version_id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Should keep fixed versions for the issues 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue_with_local_fixed_version  =  Issue . find ( 5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue_with_local_fixed_version . update_attribute ( :fixed_version_id ,  4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue_with_local_fixed_version . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  4 ,  issue_with_local_fixed_version . fixed_version_id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Local issue with hierarchy fixed_version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue_with_hierarchy_fixed_version  =  Issue . find ( 13 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue_with_hierarchy_fixed_version . update_attribute ( :fixed_version_id ,  6 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue_with_hierarchy_fixed_version . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  6 ,  issue_with_hierarchy_fixed_version . fixed_version_id 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # Move project out of the issue's hierarchy 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    moved_project  =  Project . find ( 3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    moved_project . set_parent! ( Project . find ( 2 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_issue . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue_with_local_fixed_version . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue_with_hierarchy_fixed_version . reload 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  4 ,  issue_with_local_fixed_version . fixed_version_id ,  " Fixed version was not keep on an issue local to the moved project " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  nil ,  issue_with_hierarchy_fixed_version . fixed_version_id ,  " Fixed version is still set after moving the Project out of the hierarchy where the version is defined in " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  nil ,  parent_issue . fixed_version_id ,  " Fixed version is still set after moving the Version out of the hierarchy for the issue. " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_parent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    p  =  Project . find ( 6 ) . parent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . is_a? ( Project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  5 ,  p . id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_ancestors 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    a  =  Project . find ( 6 ) . ancestors 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  a . first . is_a? ( Project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ,  5 ] ,  a . collect ( & :id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_root 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    r  =  Project . find ( 6 ) . root 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  r . is_a? ( Project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  r . id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_children 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    c  =  Project . find ( 1 ) . children 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  c . first . is_a? ( Project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 5 ,  3 ,  4 ] ,  c . collect ( & :id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_descendants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    d  =  Project . find ( 1 ) . descendants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  d . first . is_a? ( Project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 5 ,  6 ,  3 ,  4 ] ,  d . collect ( & :id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-15 13:22:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_allowed_parents_should_be_empty_for_non_member_user 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Role . non_member . add_permission! ( :add_project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    user  =  User . find ( 9 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  user . memberships . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  user 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-24 16:18:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  Project . new . allowed_parents . compact . empty? 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-15 13:22:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 20:38:23 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_allowed_parents_with_add_subprojects_permission 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Role . find ( 1 ) . remove_permission! ( :add_project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Role . find ( 1 ) . add_permission! ( :add_subprojects ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  User . find ( 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # new project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! Project . new . allowed_parents . include? ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . new . allowed_parents . include? ( Project . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # existing root project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . find ( 1 ) . allowed_parents . include? ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # existing child 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . find ( 3 ) . allowed_parents . include? ( Project . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! Project . find ( 3 ) . allowed_parents . include? ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_allowed_parents_with_add_project_permission 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Role . find ( 1 ) . add_permission! ( :add_project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Role . find ( 1 ) . remove_permission! ( :add_subprojects ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  User . find ( 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # new project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . new . allowed_parents . include? ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! Project . new . allowed_parents . include? ( Project . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # existing root project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . find ( 1 ) . allowed_parents . include? ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # existing child 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . find ( 3 ) . allowed_parents . include? ( Project . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . find ( 3 ) . allowed_parents . include? ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_allowed_parents_with_add_project_and_subprojects_permission 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Role . find ( 1 ) . add_permission! ( :add_project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Role . find ( 1 ) . add_permission! ( :add_subprojects ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  User . find ( 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # new project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . new . allowed_parents . include? ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . new . allowed_parents . include? ( Project . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # existing root project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . find ( 1 ) . allowed_parents . include? ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # existing child 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . find ( 3 ) . allowed_parents . include? ( Project . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  Project . find ( 3 ) . allowed_parents . include? ( nil ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_users_by_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    users_by_role  =  Project . find ( 1 ) . users_by_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_kind_of  Hash ,  users_by_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    role  =  Role . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_kind_of  Array ,  users_by_role [ role ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  users_by_role [ role ] . include? ( User . find ( 2 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_rolled_up_trackers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent . trackers  =  Tracker . find ( [ 1 , 2 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    child  =  parent . children . find ( 3 ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ,  2 ] ,  parent . tracker_ids 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 2 ,  3 ] ,  child . trackers . collect ( & :id ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_kind_of  Tracker ,  parent . rolled_up_trackers . first 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  Tracker . find ( 1 ) ,  parent . rolled_up_trackers . first 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ,  2 ,  3 ] ,  parent . rolled_up_trackers . collect ( & :id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 2 ,  3 ] ,  child . rolled_up_trackers . collect ( & :id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_rolled_up_trackers_should_ignore_archived_subprojects 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent . trackers  =  Tracker . find ( [ 1 , 2 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    child  =  parent . children . find ( 3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    child . trackers  =  Tracker . find ( [ 1 , 3 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent . children . each ( & :archive ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 , 2 ] ,  parent . rolled_up_trackers . collect ( & :id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-27 17:16:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-09 13:56:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # rolled_up_trackers should ignore projects with issue_tracking module disabled "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent . trackers  =  Tracker . find ( [ 1 ,  2 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    child  =  Project . generate_with_parent! ( parent ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    child . trackers  =  Tracker . find ( [ 2 ,  3 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ,  2 ,  3 ] ,  parent . rolled_up_trackers . collect ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  child . disable_module! ( :issue_tracking ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ,  2 ] ,  parent . rolled_up_trackers . collect ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:20:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # rolled_up_versions should include the versions for the current project "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_version_1  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_version_2  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_same_elements  [ parent_version_1 ,  parent_version_2 ] ,  project . rolled_up_versions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  test  " # rolled_up_versions should include versions for a subproject "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_version_1  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_version_2  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    subproject  =  Project . generate_with_parent! ( project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    subproject_version  =  Version . generate! ( :project  = >  subproject ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_same_elements  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                          parent_version_1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                          parent_version_2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                          subproject_version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                         ] ,  project . rolled_up_versions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  test  " # rolled_up_versions should include versions for a sub-subproject "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_version_1  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_version_2  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    subproject  =  Project . generate_with_parent! ( project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    sub_subproject  =  Project . generate_with_parent! ( subproject ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    sub_subproject_version  =  Version . generate! ( :project  = >  sub_subproject ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . reload 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-27 17:16:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:20:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_same_elements  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                          parent_version_1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                          parent_version_2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                          sub_subproject_version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                         ] ,  project . rolled_up_versions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-27 17:16:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:20:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # rolled_up_versions should only check active projects "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_version_1  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent_version_2  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    subproject  =  Project . generate_with_parent! ( project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    subproject_version  =  Version . generate! ( :project  = >  subproject ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  subproject . archive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . reload 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-27 17:16:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:20:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  ! subproject . active? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_same_elements  [ parent_version_1 ,  parent_version_2 ] ,  project . rolled_up_versions 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-27 17:16:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-07 19:28:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_shared_versions_none_sharing 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    p  =  Project . find ( 5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    v  =  Version . create! ( :name  = >  'none_sharing' ,  :project  = >  p ,  :sharing  = >  'none' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! p . children . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! p . root . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! p . siblings . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! p . root . siblings . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_shared_versions_descendants_sharing 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    p  =  Project . find ( 5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    v  =  Version . create! ( :name  = >  'descendants_sharing' ,  :project  = >  p ,  :sharing  = >  'descendants' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . children . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! p . root . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! p . siblings . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! p . root . siblings . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-07 19:28:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_shared_versions_hierarchy_sharing 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    p  =  Project . find ( 5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    v  =  Version . create! ( :name  = >  'hierarchy_sharing' ,  :project  = >  p ,  :sharing  = >  'hierarchy' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . children . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . root . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! p . siblings . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! p . root . siblings . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_shared_versions_tree_sharing 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    p  =  Project . find ( 5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    v  =  Version . create! ( :name  = >  'tree_sharing' ,  :project  = >  p ,  :sharing  = >  'tree' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . children . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . root . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . siblings . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! p . root . siblings . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_shared_versions_system_sharing 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    p  =  Project . find ( 5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    v  =  Version . create! ( :name  = >  'system_sharing' ,  :project  = >  p ,  :sharing  = >  'system' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . children . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . root . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . siblings . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  p . root . siblings . first . shared_versions . include? ( v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_shared_versions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    child  =  parent . children . find ( 3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    private_child  =  parent . children . find ( 5 ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 , 2 , 3 ] ,  parent . version_ids . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 4 ] ,  child . version_ids 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 6 ] ,  private_child . version_ids 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-07 15:43:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ 7 ] ,  Version . where ( :sharing  = >  'system' ) . all . collect ( & :id ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  6 ,  parent . shared_versions . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent . shared_versions . each  do  | version | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_kind_of  Version ,  version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 , 2 , 3 , 4 , 6 , 7 ] ,  parent . shared_versions . collect ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_shared_versions_should_ignore_archived_subprojects 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    child  =  parent . children . find ( 3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    child . archive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent . reload 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 , 2 , 3 ] ,  parent . version_ids . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 4 ] ,  child . version_ids 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! parent . shared_versions . collect ( & :id ) . include? ( 4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_shared_versions_visible_to_user 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    user  =  User . find ( 3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    parent  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    child  =  parent . children . find ( 5 ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 , 2 , 3 ] ,  parent . version_ids . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 6 ] ,  child . version_ids 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    versions  =  parent . shared_versions . visible ( user ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  4 ,  versions . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    versions . each  do  | version | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_kind_of  Version ,  version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! versions . collect ( & :id ) . include? ( 6 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-02-13 18:57:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_shared_versions_for_new_project_should_include_system_shared_versions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    p  =  Project . find ( 5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    v  =  Version . create! ( :name  = >  'system_sharing' ,  :project  = >  p ,  :sharing  = >  'system' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  v ,  Project . new . shared_versions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_next_identifier 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ProjectCustomField . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . create! ( :name  = >  'last' ,  :identifier  = >  'p2008040' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  'p2008041' ,  Project . next_identifier 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_next_identifier_first_project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Project . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  Project . next_identifier 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 17:16:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_enabled_module_names 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :default_projects_modules  = >  [ 'issue_tracking' ,  'repository' ]  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      project  =  Project . new 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 17:16:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      project . enabled_module_names  =  %w( issue_tracking news ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  %w( issue_tracking news ) ,  project . enabled_module_names . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:20:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " enabled_modules should define module by names and preserve ids "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Remove one module 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    modules  =  @project . enabled_modules . slice ( 0 .. - 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  modules . any? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_difference  'EnabledModule.count' ,  - 1  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      @project . enabled_module_names  =  modules . collect ( & :name ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-19 23:45:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:20:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    @project . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Ids should be preserved 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  @project . enabled_module_ids . sort ,  modules . collect ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  test  " enabled_modules should enable a module "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @project . enabled_module_names  =  [ ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @project . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ ] ,  @project . enabled_module_names 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    #with string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @project . enable_module! ( " issue_tracking " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ " issue_tracking " ] ,  @project . enabled_module_names 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    #with symbol 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @project . enable_module! ( :gantt ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ " issue_tracking " ,  " gantt " ] ,  @project . enabled_module_names 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    #don't add a module twice 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @project . enable_module! ( " issue_tracking " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ " issue_tracking " ,  " gantt " ] ,  @project . enabled_module_names 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  test  " enabled_modules should disable a module "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    #with string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  @project . enabled_module_names . include? ( " issue_tracking " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @project . disable_module! ( " issue_tracking " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  !  @project . reload . enabled_module_names . include? ( " issue_tracking " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    #with symbol 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  @project . enabled_module_names . include? ( " gantt " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @project . disable_module! ( :gantt ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  !  @project . reload . enabled_module_names . include? ( " gantt " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    #with EnabledModule object 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    first_module  =  @project . enabled_modules . first 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @project . disable_module! ( first_module ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  !  @project . reload . enabled_module_names . include? ( first_module . name ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-19 23:45:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_enabled_module_names_should_not_recreate_enabled_modules 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Remove one module 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    modules  =  project . enabled_modules . slice ( 0 .. - 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  modules . any? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_difference  'EnabledModule.count' ,  - 1  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      project . enabled_module_names  =  modules . collect ( & :name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Ids should be preserved 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  project . enabled_module_ids . sort ,  modules . collect ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_copy_from_existing_project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    source_project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    copied_project  =  Project . copy_from ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  copied_project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Cleared attributes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  copied_project . id . blank? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  copied_project . name . blank? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  copied_project . identifier . blank? 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # Duplicated attributes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  source_project . description ,  copied_project . description 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  source_project . enabled_modules ,  copied_project . enabled_modules 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  source_project . trackers ,  copied_project . trackers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Default attributes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  copied_project . status 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_activities_should_use_the_system_activities 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-02 20:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  project . activities ,  TimeEntryActivity . where ( :active  = >  true ) . all 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_activities_should_use_the_project_specific_activities 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    overridden_activity  =  TimeEntryActivity . new ( { :name  = >  " Project " ,  :project  = >  project } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  overridden_activity . save! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  project . activities . include? ( overridden_activity ) ,  " Project specific Activity not found " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_activities_should_not_include_the_inactive_project_specific_activities 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-03 18:21:32 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    overridden_activity  =  TimeEntryActivity . new ( { :name  = >  " Project " ,  :project  = >  project ,  :parent  = >  TimeEntryActivity . first ,  :active  = >  false } ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  overridden_activity . save! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! project . activities . include? ( overridden_activity ) ,  " Inactive Project specific Activity found " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_activities_should_not_include_project_specific_activities_from_other_projects 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    overridden_activity  =  TimeEntryActivity . new ( { :name  = >  " Project " ,  :project  = >  Project . find ( 2 ) } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  overridden_activity . save! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! project . activities . include? ( overridden_activity ) ,  " Project specific Activity found on a different project " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_activities_should_handle_nils 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-03 18:21:32 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    overridden_activity  =  TimeEntryActivity . new ( { :name  = >  " Project " ,  :project  = >  Project . find ( 1 ) ,  :parent  = >  TimeEntryActivity . first } ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    TimeEntryActivity . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # No activities 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  project . activities . empty? 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # No system, one overridden 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  overridden_activity . save! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ overridden_activity ] ,  project . activities 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_activities_should_override_system_activities_with_project_activities 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-03 18:21:32 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    parent_activity  =  TimeEntryActivity . first 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    overridden_activity  =  TimeEntryActivity . new ( { :name  = >  " Project " ,  :project  = >  project ,  :parent  = >  parent_activity } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  overridden_activity . save! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  project . activities . include? ( overridden_activity ) ,  " Project specific Activity not found " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! project . activities . include? ( parent_activity ) ,  " System Activity found when it should have been overridden " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_activities_should_include_inactive_activities_if_specified 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-03 18:21:32 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    overridden_activity  =  TimeEntryActivity . new ( { :name  = >  " Project " ,  :project  = >  project ,  :parent  = >  TimeEntryActivity . first ,  :active  = >  false } ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  overridden_activity . save! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  project . activities ( true ) . include? ( overridden_activity ) ,  " Inactive Project specific Activity not found " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-24 18:25:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  test  'activities should not include active System activities if the project has an override that is inactive'  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    system_activity  =  TimeEntryActivity . find_by_name ( 'Design' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  system_activity . active? 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-22 11:56:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    overridden_activity  =  TimeEntryActivity . create! ( :name  = >  " Project " ,  :project  = >  project ,  :parent  = >  system_activity ,  :active  = >  false ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-24 18:25:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  overridden_activity . save! 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-24 18:25:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  ! project . activities . include? ( overridden_activity ) ,  " Inactive Project specific Activity not found " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! project . activities . include? ( system_activity ) ,  " System activity found when the project has an inactive override " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-09 18:53:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_close_completed_versions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Version . update_all ( " status = 'open' " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  project . versions . detect  { | v |  v . completed?  &&  v . status  ==  'open' } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  project . versions . detect  { | v |  ! v . completed?  &&  v . status  ==  'open' } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . close_completed_versions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  project . versions . detect  { | v |  v . completed?  &&  v . status  !=  'closed' } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  project . versions . detect  { | v |  ! v . completed?  &&  v . status  ==  'open' } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:34:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # start_date should be nil if there are no issues on the project "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  project . start_date 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-08 05:56:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # start_date should be nil when issues have no start date "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . trackers  <<  Tracker . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    early  =  7 . days . ago . to_date 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project  = >  project ,  :start_date  = >  nil ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_nil  project . start_date 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # start_date should be the earliest start date of it's issues "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . trackers  <<  Tracker . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    early  =  7 . days . ago . to_date 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project  = >  project ,  :start_date  = >  Date . today ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project  = >  project ,  :start_date  = >  early ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  early ,  project . start_date 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # due_date should be nil if there are no issues on the project "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  project . due_date 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # due_date should be nil if there are no issues with due dates "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . trackers  <<  Tracker . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project  = >  project ,  :due_date  = >  nil ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_nil  project . due_date 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # due_date should be the latest due date of it's issues "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . trackers  <<  Tracker . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    future  =  7 . days . from_now . to_date 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project  = >  project ,  :due_date  = >  future ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project  = >  project ,  :due_date  = >  Date . today ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  future ,  project . due_date 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # due_date should be the latest due date of it's versions "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    future  =  7 . days . from_now . to_date 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . versions  <<  Version . generate! ( :effective_date  = >  future ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . versions  <<  Version . generate! ( :effective_date  = >  Date . today ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  future ,  project . due_date 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # due_date should pick the latest date from it's issues and versions "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . trackers  <<  Tracker . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    future  =  7 . days . from_now . to_date 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    far_future  =  14 . days . from_now . to_date 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project  = >  project ,  :due_date  = >  far_future ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . versions  <<  Version . generate! ( :effective_date  = >  future ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  far_future ,  project . due_date 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # completed_percent with no versions should be 100 "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  100 ,  project . completed_percent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # completed_percent with versions should return 0 if the versions have no issues "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  project . completed_percent 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 03:09:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-10 21:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # completed_percent with versions should return 100 if the version has only closed issues "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . trackers  <<  Tracker . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    v1  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project  = >  project ,  :status  = >  IssueStatus . find_by_name ( 'Closed' ) ,  :fixed_version  = >  v1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    v2  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project  = >  project ,  :status  = >  IssueStatus . find_by_name ( 'Closed' ) ,  :fixed_version  = >  v2 ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  100 ,  project . completed_percent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-10 21:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # completed_percent with versions should return the averaged completed percent of the versions (not weighted) "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project . trackers  <<  Tracker . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    v1  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project  = >  project ,  :status  = >  IssueStatus . find_by_name ( 'New' ) ,  :estimated_hours  = >  10 ,  :done_ratio  = >  50 ,  :fixed_version  = >  v1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    v2  =  Version . generate! ( :project  = >  project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project  = >  project ,  :status  = >  IssueStatus . find_by_name ( 'New' ) ,  :estimated_hours  = >  10 ,  :done_ratio  = >  50 ,  :fixed_version  = >  v2 ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-10 21:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  50 ,  project . completed_percent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-10 21:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # notified_users "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    role  =  Role . generate! 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-10 21:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    user_with_membership_notification  =  User . generate! ( :mail_notification  = >  'selected' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Member . create! ( :project  = >  project ,  :roles  = >  [ role ] ,  :principal  = >  user_with_membership_notification ,  :mail_notification  = >  true ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-10 21:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    all_events_user  =  User . generate! ( :mail_notification  = >  'all' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Member . create! ( :project  = >  project ,  :roles  = >  [ role ] ,  :principal  = >  all_events_user ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    no_events_user  =  User . generate! ( :mail_notification  = >  'none' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Member . create! ( :project  = >  project ,  :roles  = >  [ role ] ,  :principal  = >  no_events_user ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    only_my_events_user  =  User . generate! ( :mail_notification  = >  'only_my_events' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Member . create! ( :project  = >  project ,  :roles  = >  [ role ] ,  :principal  = >  only_my_events_user ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    only_assigned_user  =  User . generate! ( :mail_notification  = >  'only_assigned' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Member . create! ( :project  = >  project ,  :roles  = >  [ role ] ,  :principal  = >  only_assigned_user ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    only_owned_user  =  User . generate! ( :mail_notification  = >  'only_owner' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Member . create! ( :project  = >  project ,  :roles  = >  [ role ] ,  :principal  = >  only_owned_user ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-21 11:50:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 09:43:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  project . notified_users . include? ( user_with_membership_notification ) ,  " should include members with a mail notification " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  project . notified_users . include? ( all_events_user ) ,  " should include users with the 'all' notification option " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! project . notified_users . include? ( no_events_user ) ,  " should not include users with the 'none' notification option " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! project . notified_users . include? ( only_my_events_user ) ,  " should not include users with the 'only_my_events' notification option " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! project . notified_users . include? ( only_assigned_user ) ,  " should not include users with the 'only_assigned' notification option " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! project . notified_users . include? ( only_owned_user ) ,  " should not include users with the 'only_owner' notification option " 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-10 21:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-20 14:06:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								end