2011-04-12 16:53:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Redmine - project management software 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 22:45:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Copyright (C) 2006-2014  Jean-Philippe Lang 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 12:29:53 +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-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 12:29:53 +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-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 12:29:53 +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. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-12-12 23:24:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								require  File . expand_path ( '../../test_helper' ,  __FILE__ ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 12:29:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:14:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  QueryTest  <  ActiveSupport :: TestCase 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-01 01:29:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  include  Redmine :: I18n 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-09-20 16:55:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  fixtures  :projects ,  :enabled_modules ,  :users ,  :members , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :member_roles ,  :roles ,  :trackers ,  :issue_statuses , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :issue_categories ,  :enumerations ,  :issues , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :watchers ,  :custom_fields ,  :custom_values ,  :versions , 
							 
						 
					
						
							
								
									
										
										
										
											2011-09-20 16:56:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           :queries , 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-23 23:29:42 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           :projects_trackers , 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-03 08:25:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           :custom_fields_trackers , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           :workflows 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 12:29:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-20 13:35:33 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  setup 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  nil 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-07-11 17:45:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_query_with_roles_visibility_should_validate_roles 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    set_language_if_valid  'en' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  'Query' ,  :visibility  = >  IssueQuery :: VISIBILITY_ROLES ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! query . save 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  " Roles can't be blank " ,  query . errors . full_messages 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . role_ids  =  [ 1 ,  2 ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . save 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_changing_roles_visibility_should_clear_roles 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . create! ( :name  = >  'Query' ,  :visibility  = >  IssueQuery :: VISIBILITY_ROLES ,  :role_ids  = >  [ 1 ,  2 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  2 ,  query . roles . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . visibility  =  IssueQuery :: VISIBILITY_PUBLIC 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . save! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  query . roles . count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-14 20:37:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_available_filters_should_be_ordered 
							 
						 
					
						
							
								
									
										
										
										
											2013-05-16 10:55:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    set_language_if_valid  'en' 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-14 20:37:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  0 ,  query . available_filters . keys . index ( 'status_id' ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-05-16 10:55:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    expected_order  =  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      " Status " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      " Project " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      " Tracker " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      " Priority " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  expected_order , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 ( query . available_filters . values . map { | v |  v [ :name ] }  &  expected_order ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_available_filters_with_custom_fields_should_be_ordered 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    set_language_if_valid  'en' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    UserCustomField . create! ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              :name  = >  'order test' ,  :field_format  = >  'string' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              :is_for_all  = >  true ,  :is_filter  = >  true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    expected_order  =  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      " Searchable field " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      " Database " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      " Project's Development status " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      " Author's order test " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      " Assignee's order test " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  expected_order , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 ( query . available_filters . values . map { | v |  v [ :name ] }  &  expected_order ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-14 20:37:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-06-22 15:35:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_custom_fields_for_all_projects_should_be_available_in_global_queries 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  nil ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-22 15:35:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . available_filters . has_key? ( 'cf_1' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! query . available_filters . has_key? ( 'cf_3' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:42:32 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_system_shared_versions_should_be_available_in_global_queries 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Version . find ( 2 ) . update_attribute  :sharing ,  'system' 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  nil ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:42:32 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . available_filters . has_key? ( 'fixed_version_id' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . available_filters [ 'fixed_version_id' ] [ :values ] . detect  { | v |  v . last  ==  '2' } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-08-08 09:01:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_project_filter_in_global_queries 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  nil ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-08-08 09:01:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    project_filter  =  query . available_filters [ " project_id " ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  project_filter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project_ids  =  project_filter [ :values ] . map { | p |  p [ 1 ] } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  project_ids . include? ( " 1 " )   #public project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! project_ids . include? ( " 2 " )  #private project user cannot see 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-07 21:32:14 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_available_filters_should_not_include_fields_disabled_on_all_trackers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Tracker . all . each  do  | tracker | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      tracker . core_fields  =  Tracker :: CORE_FIELDS  -  [ 'start_date' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      tracker . save! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  'due_date' ,  query . available_filters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_include  'start_date' ,  query . available_filters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-07-26 09:05:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-10-22 17:37:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    Issue . joins ( :status ,  :tracker ,  :project ,  :priority ) . where ( 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-04 23:06:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								         query . statement 
							 
						 
					
						
							
								
									
										
										
										
											2014-10-24 02:18:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       ) . to_a 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-26 09:05:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 18:46:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  assert_find_issues_with_query_is_successful ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nothing_raised  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  assert_query_statement_includes ( query ,  condition ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-29 17:58:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_include  condition ,  query . statement 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 18:46:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-09 13:10:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-11-19 15:11:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  assert_query_result ( expected ,  query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nothing_raised  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  expected . map ( & :id ) . sort ,  query . issues . map ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  expected . size ,  query . issue_count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 18:46:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_query_should_allow_shared_versions_for_a_project_query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    subproject_version  =  Version . find ( 4 ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-06 10:28:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'fixed_version_id' ,  '=' ,  [ subproject_version . id . to_s ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " #{ Issue . table_name } .fixed_version_id IN ('4') " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 12:29:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  def  test_query_with_multiple_custom_fields 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . find ( 1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 12:29:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . valid? 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-26 16:55:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " #{ CustomValue . table_name } .value IN ('MySQL') " ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-26 09:05:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 12:29:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  issues . length 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  Issue . find ( 3 ) ,  issues . first 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_none 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'fixed_version_id' ,  '!*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'cf_1' ,  '!*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " #{ Issue . table_name } .fixed_version_id IS NULL " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " #{ CustomValue . table_name } .value IS NULL OR  #{ CustomValue . table_name } .value = '' " ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-26 09:05:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-07-26 09:05:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_none_for_integer 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-26 09:05:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'estimated_hours' ,  '!*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  issues . all?  { | i |  ! i . estimated_hours } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-11-19 11:25:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_none_for_date 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-19 11:25:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'start_date' ,  '!*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  issues . all?  { | i |  i . start_date . nil? } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-12 12:23:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_none_for_string_custom_field 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-12 12:23:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'cf_2' ,  '!*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . has_filter? ( 'cf_2' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  issues . all?  { | i |  i . custom_field_value ( 2 ) . blank? } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_all 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'fixed_version_id' ,  '*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'cf_1' ,  '*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " #{ Issue . table_name } .fixed_version_id IS NOT NULL " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " #{ CustomValue . table_name } .value IS NOT NULL AND  #{ CustomValue . table_name } .value <> '' " ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-26 09:05:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-11-19 11:25:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_all_for_date 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-19 11:25:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'start_date' ,  '*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  issues . all?  { | i |  i . start_date . present? } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-12 12:23:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_all_for_string_custom_field 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-12 12:23:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'cf_2' ,  '*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . has_filter? ( 'cf_2' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  issues . all?  { | i |  i . custom_field_value ( 2 ) . present? } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 18:19:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_numeric_filter_should_not_accept_non_numeric_values 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 18:19:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'estimated_hours' ,  '=' ,  [ 'a' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 18:19:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . has_filter? ( 'estimated_hours' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! query . valid? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 18:09:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_is_on_float 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-09 04:24:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    Issue . where ( :id  = >  2 ) . update_all ( " estimated_hours = 171.2 " ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 18:09:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'estimated_hours' ,  '=' ,  [ '171.20' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  issues . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  2 ,  issues . first . id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-12-05 20:45:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_is_on_integer_custom_field 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-13 17:41:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    f  =  IssueCustomField . create! ( :name  = >  'filter' ,  :field_format  = >  'int' ,  :is_for_all  = >  true ,  :is_filter  = >  true ,  :trackers  = >  Tracker . all ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-05 20:45:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 1 ) ,  :value  = >  '7' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 2 ) ,  :value  = >  '12' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 3 ) ,  :value  = >  '' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-05 20:45:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '=' ,  [ '12' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  issues . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  2 ,  issues . first . id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-07-04 18:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_is_on_integer_custom_field_should_accept_negative_value 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-13 17:41:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    f  =  IssueCustomField . create! ( :name  = >  'filter' ,  :field_format  = >  'int' ,  :is_for_all  = >  true ,  :is_filter  = >  true ,  :trackers  = >  Tracker . all ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-04 18:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 1 ) ,  :value  = >  '7' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 2 ) ,  :value  = >  '-12' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 3 ) ,  :value  = >  '' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-04 18:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '=' ,  [ '-12' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . valid? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  issues . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  2 ,  issues . first . id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-12-05 20:45:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_is_on_float_custom_field 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-13 17:41:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    f  =  IssueCustomField . create! ( :name  = >  'filter' ,  :field_format  = >  'float' ,  :is_filter  = >  true ,  :is_for_all  = >  true ,  :trackers  = >  Tracker . all ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-05 20:45:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 1 ) ,  :value  = >  '7.3' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 2 ) ,  :value  = >  '12.7' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 3 ) ,  :value  = >  '' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-05 20:45:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '=' ,  [ '12.7' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  issues . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  2 ,  issues . first . id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-07-04 18:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_is_on_float_custom_field_should_accept_negative_value 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-13 17:41:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    f  =  IssueCustomField . create! ( :name  = >  'filter' ,  :field_format  = >  'float' ,  :is_filter  = >  true ,  :is_for_all  = >  true ,  :trackers  = >  Tracker . all ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-04 18:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 1 ) ,  :value  = >  '7.3' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 2 ) ,  :value  = >  '-12.7' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 3 ) ,  :value  = >  '' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-04 18:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '=' ,  [ '-12.7' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . valid? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  issues . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  2 ,  issues . first . id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_is_on_multi_list_custom_field 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    f  =  IssueCustomField . create! ( :name  = >  'filter' ,  :field_format  = >  'list' ,  :is_filter  = >  true ,  :is_for_all  = >  true , 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-13 17:41:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      :possible_values  = >  [ 'value1' ,  'value2' ,  'value3' ] ,  :multiple  = >  true ,  :trackers  = >  Tracker . all ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 1 ) ,  :value  = >  'value1' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 1 ) ,  :value  = >  'value2' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 3 ) ,  :value  = >  'value1' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '=' ,  [ 'value1' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ,  3 ] ,  issues . map ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '=' ,  [ 'value2' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ] ,  issues . map ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_operator_is_not_on_multi_list_custom_field 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    f  =  IssueCustomField . create! ( :name  = >  'filter' ,  :field_format  = >  'list' ,  :is_filter  = >  true ,  :is_for_all  = >  true , 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-13 17:41:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      :possible_values  = >  [ 'value1' ,  'value2' ,  'value3' ] ,  :multiple  = >  true ,  :trackers  = >  Tracker . all ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 1 ) ,  :value  = >  'value1' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 1 ) ,  :value  = >  'value2' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 3 ) ,  :value  = >  'value1' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '!' ,  [ 'value1' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . map ( & :id ) . include? ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . map ( & :id ) . include? ( 3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '!' ,  [ 'value2' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . map ( & :id ) . include? ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  issues . map ( & :id ) . include? ( 3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-07-05 13:51:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_is_on_is_private_field 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # is_private filter only available for those who can set issues private 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  User . find ( 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-05 13:51:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . available_filters . key? ( 'is_private' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . add_filter ( " is_private " ,  '=' ,  [ '1' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  issues . any? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  issues . detect  { | issue |  ! issue . is_private? } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  ensure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  nil 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_operator_is_not_on_is_private_field 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # is_private filter only available for those who can set issues private 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  User . find ( 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-05 13:51:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . available_filters . key? ( 'is_private' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . add_filter ( " is_private " ,  '!' ,  [ '1' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  issues . any? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  issues . detect  { | issue |  issue . is_private? } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  ensure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  nil 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_greater_than 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'done_ratio' ,  '>=' ,  [ '40' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 18:09:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " #{ Issue . table_name } .done_ratio >= 40.0 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 18:09:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_greater_than_a_float 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 18:09:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'estimated_hours' ,  '>=' ,  [ '40.5' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " #{ Issue . table_name } .estimated_hours >= 40.5 " ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-26 09:05:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-12-05 20:45:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_greater_than_on_int_custom_field 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-13 17:41:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    f  =  IssueCustomField . create! ( :name  = >  'filter' ,  :field_format  = >  'int' ,  :is_filter  = >  true ,  :is_for_all  = >  true ,  :trackers  = >  Tracker . all ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-05 20:45:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 1 ) ,  :value  = >  '7' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 2 ) ,  :value  = >  '12' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 3 ) ,  :value  = >  '' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-05 20:45:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '>=' ,  [ '8' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  issues . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  2 ,  issues . first . id 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-09 21:34:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-09 21:34:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_lesser_than 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-09 21:34:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'done_ratio' ,  '<=' ,  [ '30' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 18:09:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " #{ Issue . table_name } .done_ratio <= 30.0 " ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-09 21:34:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-09 21:34:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_lesser_than_on_custom_field 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    f  =  IssueCustomField . create! ( :name  = >  'filter' ,  :field_format  = >  'int' ,  :is_filter  = >  true ,  :is_for_all  = >  true ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-09 21:34:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '<=' ,  [ '30' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-03 13:33:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_match  / CAST.+ <= 30 \ .0 / ,  query . statement 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-09 21:34:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-05-16 16:29:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_lesser_than_on_date_custom_field 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-13 17:41:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    f  =  IssueCustomField . create! ( :name  = >  'filter' ,  :field_format  = >  'date' ,  :is_filter  = >  true ,  :is_for_all  = >  true ,  :trackers  = >  Tracker . all ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-05-16 16:29:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 1 ) ,  :value  = >  '2013-04-11' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 2 ) ,  :value  = >  '2013-05-14' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  f ,  :customized  = >  Issue . find ( 3 ) ,  :value  = >  '' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '<=' ,  [ '2013-05-01' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue_ids  =  find_issues_with_query ( query ) . map ( & :id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  1 ,  issue_ids 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_include  2 ,  issue_ids 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_include  3 ,  issue_ids 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 08:00:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_between 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 08:00:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'done_ratio' ,  '><' ,  [ '30' ,  '40' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 18:09:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_include  " #{ Issue . table_name } .done_ratio BETWEEN 30.0 AND 40.0 " ,  query . statement 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 08:00:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 08:00:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_between_on_custom_field 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    f  =  IssueCustomField . create! ( :name  = >  'filter' ,  :field_format  = >  'int' ,  :is_filter  = >  true ,  :is_for_all  = >  true ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 08:00:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( " cf_ #{ f . id } " ,  '><' ,  [ '30' ,  '40' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-03 13:33:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_match  / CAST.+ BETWEEN 30.0 AND 40.0 / ,  query . statement 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 08:00:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-11 14:13:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_date_filter_should_not_accept_non_date_values 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-11 14:13:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'created_on' ,  '=' ,  [ 'a' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-11 14:13:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . has_filter? ( 'created_on' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! query . valid? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-11 14:36:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_date_filter_should_not_accept_invalid_date_values 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-11 14:36:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'created_on' ,  '=' ,  [ '2011-01-34' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-11 14:36:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . has_filter? ( 'created_on' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! query . valid? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-11 14:13:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_relative_date_filter_should_not_accept_non_integer_values 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-11 14:13:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'created_on' ,  '>t-' ,  [ 'a' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-11 14:13:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . has_filter? ( 'created_on' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! query . valid? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 17:29:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_date_equals 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 17:29:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  '=' ,  [ '2011-07-10' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_match  / issues \ .due_date > '2011-07-09 23:59:59( \ .9+)?' AND issues \ .due_date <= '2011-07-10 23:59:59( \ .9+)? / ,  query . statement 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_operator_date_lesser_than 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 17:29:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  '<=' ,  [ '2011-07-10' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_match  / issues \ .due_date <= '2011-07-10 23:59:59( \ .9+)? / ,  query . statement 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-03 19:42:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_date_lesser_than_with_timestamp 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'updated_on' ,  '<=' ,  [ '2011-07-10T19:13:52' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_match  / issues \ .updated_on <= '2011-07-10 19:13:52 / ,  query . statement 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 17:29:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_date_greater_than 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 17:29:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  '>=' ,  [ '2011-07-10' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_match  / issues \ .due_date > '2011-07-09 23:59:59( \ .9+)?' / ,  query . statement 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-03 19:42:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_date_greater_than_with_timestamp 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'updated_on' ,  '>=' ,  [ '2011-07-10T19:13:52' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-04 08:22:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_match  / issues \ .updated_on > '2011-07-10 19:13:51( \ .0+)?' / ,  query . statement 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-03 19:42:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 17:29:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_date_between 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 17:29:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  '><' ,  [ '2011-06-23' ,  '2011-07-10' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-13 17:41:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_match  / issues \ .due_date > '2011-06-22 23:59:59( \ .9+)?' AND issues \ .due_date <= '2011-07-10 23:59:59( \ .9+)?' / ,  query . statement 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-10 17:29:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_in_more_than 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    Issue . find ( 7 ) . update_attribute ( :due_date ,  ( Date . today  +  15 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  '>t+' ,  [ '15' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues . each  { | issue |  assert ( issue . due_date  > =  ( Date . today  +  15 ) ) } 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_operator_in_less_than 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  '<t+' ,  [ '15' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
									
										
										
										
											2012-10-30 08:21:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issues . each  { | issue |  assert ( issue . due_date  < =  ( Date . today  +  15 ) ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_operator_in_the_next_days 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-10-30 08:21:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  '><t+' ,  [ '15' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issues . each  { | issue |  assert ( issue . due_date  > =  Date . today  &&  issue . due_date  < =  ( Date . today  +  15 ) ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_less_than_ago 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . find ( 7 ) . update_attribute ( :due_date ,  ( Date . today  -  3 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  '>t-' ,  [ '3' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
									
										
										
										
											2012-10-30 08:21:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issues . each  { | issue |  assert ( issue . due_date  > =  ( Date . today  -  3 ) ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_operator_in_the_past_days 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . find ( 7 ) . update_attribute ( :due_date ,  ( Date . today  -  3 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-10-30 08:21:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  '><t-' ,  [ '3' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issues . each  { | issue |  assert ( issue . due_date  > =  ( Date . today  -  3 )  &&  issue . due_date  < =  Date . today ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_more_than_ago 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . find ( 7 ) . update_attribute ( :due_date ,  ( Date . today  -  10 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  '<t-' ,  [ '10' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " #{ Issue . table_name } .due_date <= " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues . each  { | issue |  assert ( issue . due_date  < =  ( Date . today  -  10 ) ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_operator_in 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . find ( 7 ) . update_attribute ( :due_date ,  ( Date . today  +  2 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  't+' ,  [ '2' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues . each  { | issue |  assert_equal ( ( Date . today  +  2 ) ,  issue . due_date ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_operator_ago 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . find ( 7 ) . update_attribute ( :due_date ,  ( Date . today  -  3 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  't-' ,  [ '3' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues . each  { | issue |  assert_equal ( ( Date . today  -  3 ) ,  issue . due_date ) } 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_operator_today 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  't' ,  [ '' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-11-23 16:40:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issues  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! issues . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues . each  { | issue |  assert_equal  Date . today ,  issue . due_date } 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-07 21:32:14 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_date_periods 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    %w( t ld w lw l2w m lm y ) . each  do  | operator | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      query . add_filter ( 'due_date' ,  operator ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert  query . valid? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert  query . issues 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-07 21:32:14 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_datetime_periods 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    %w( t ld w lw l2w m lm y ) . each  do  | operator | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      query . add_filter ( 'created_on' ,  operator ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert  query . valid? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert  query . issues 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_operator_contains 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-28 12:12:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'subject' ,  '~' ,  [ 'uNable' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " LOWER( #{ Issue . table_name } .subject) LIKE '%unable%' " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    result  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  result . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    result . each  { | issue |  assert  issue . subject . downcase . include? ( 'unable' )  } 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-04-29 11:28:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_range_for_this_week_with_week_starting_on_monday 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    I18n . locale  =  :fr 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  '1' ,  I18n . t ( :general_first_day_of_week ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-04-29 11:28:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    Date . stubs ( :today ) . returns ( Date . parse ( '2011-04-29' ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-04-29 11:28:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  'w' ,  [ '' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-04-29 13:33:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . statement . match ( / issues \ .due_date > '2011-04-24 23:59:59( \ .9+)?' AND issues \ .due_date <= '2011-05-01 23:59:59( \ .9+)? / ) ,  " range not found in  #{ query . statement } " 
							 
						 
					
						
							
								
									
										
										
										
											2011-04-29 11:28:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    I18n . locale  =  :en 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-04-29 11:28:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_range_for_this_week_with_week_starting_on_sunday 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    I18n . locale  =  :en 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  '7' ,  I18n . t ( :general_first_day_of_week ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-04-29 11:28:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    Date . stubs ( :today ) . returns ( Date . parse ( '2011-04-29' ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-04-29 11:28:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'due_date' ,  'w' ,  [ '' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-04-29 13:33:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . statement . match ( / issues \ .due_date > '2011-04-23 23:59:59( \ .9+)?' AND issues \ .due_date <= '2011-04-30 23:59:59( \ .9+)? / ) ,  " range not found in  #{ query . statement } " 
							 
						 
					
						
							
								
									
										
										
										
											2011-04-29 11:28:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_operator_does_not_contains 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :project  = >  Project . find ( 1 ) ,  :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-28 12:12:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . add_filter ( 'subject' ,  '!~' ,  [ 'uNable' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . statement . include? ( " LOWER( #{ Issue . table_name } .subject) NOT LIKE '%unable%' " ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-26 09:05:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    find_issues_with_query ( query ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-29 09:57:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-31 10:22:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_assigned_to_me 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    user  =  User . find ( 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    group  =  Group . find ( 10 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  user 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    i1  =  Issue . generate! ( :project_id  = >  1 ,  :tracker_id  = >  1 ,  :assigned_to  = >  user ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    i2  =  Issue . generate! ( :project_id  = >  1 ,  :tracker_id  = >  1 ,  :assigned_to  = >  group ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    i3  =  Issue . generate! ( :project_id  = >  1 ,  :tracker_id  = >  1 ,  :assigned_to  = >  Group . find ( 11 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    group . users  <<  user 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ,  :filters  = >  {  'assigned_to_id'  = >  { :operator  = >  '=' ,  :values  = >  [ 'me' ] } } ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-31 10:22:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    result  =  query . issues 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-12 19:13:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  Issue . visible . where ( :assigned_to_id  = >  ( [ 2 ]  +  user . reload . group_ids ) ) . sort_by ( & :id ) ,  result . sort_by ( & :id ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-31 10:22:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  result . include? ( i1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  result . include? ( i2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! result . include? ( i3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-01-13 19:38:06 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_user_custom_field_filtered_on_me 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  User . find ( 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    cf  =  IssueCustomField . create! ( :field_format  = >  'user' ,  :is_for_all  = >  true ,  :is_filter  = >  true ,  :name  = >  'User custom field' ,  :tracker_ids  = >  [ 1 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue1  =  Issue . create! ( :project_id  = >  1 ,  :tracker_id  = >  1 ,  :custom_field_values  = >  { cf . id . to_s  = >  '2' } ,  :subject  = >  'Test' ,  :author_id  = >  1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue2  =  Issue . generate! ( :project_id  = >  1 ,  :tracker_id  = >  1 ,  :custom_field_values  = >  { cf . id . to_s  = >  '3' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ,  :project  = >  Project . find ( 1 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-13 19:38:06 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    filter  =  query . available_filters [ " cf_ #{ cf . id } " ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  filter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  'me' ,  filter [ :values ] . map { | v |  v [ 1 ] } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . filters  =  {  " cf_ #{ cf . id } "  = >  { :operator  = >  '=' ,  :values  = >  [ 'me' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    result  =  query . issues 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  result . size 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-14 09:36:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  issue1 ,  result . first 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-13 19:38:06 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-07 21:32:14 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_on_me_by_anonymous_user 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  nil 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ,  :filters  = >  {  'assigned_to_id'  = >  { :operator  = >  '=' ,  :values  = >  [ 'me' ] } } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ ] ,  query . issues 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-01-13 18:16:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_my_projects 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  User . find ( 2 ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-13 18:16:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    filter  =  query . available_filters [ 'project_id' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  filter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  'mine' ,  filter [ :values ] . map { | v |  v [ 1 ] } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . filters  =  {  'project_id'  = >  { :operator  = >  '=' ,  :values  = >  [ 'mine' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    result  =  query . issues 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  result . detect  { | issue |  ! User . current . member_of? ( issue . project ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-12 17:35:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_watched_issues 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  User . find ( 1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ,  :filters  = >  {  'watcher_id'  = >  { :operator  = >  '=' ,  :values  = >  [ 'me' ] } } ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-12 17:35:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    result  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  result 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! result . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  Issue . visible . watched_by ( User . current ) . sort_by ( & :id ) ,  result . sort_by ( & :id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  nil 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-12 17:35:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_unwatched_issues 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  User . find ( 1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ,  :filters  = >  {  'watcher_id'  = >  { :operator  = >  '!' ,  :values  = >  [ 'me' ] } } ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-12 17:35:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    result  =  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  result 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! result . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal ( ( Issue . visible  -  Issue . watched_by ( User . current ) ) . sort_by ( & :id ) . size ,  result . sort_by ( & :id ) . size ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . current  =  nil 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-09-13 17:41:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_on_custom_field_should_ignore_projects_with_field_disabled 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field  =  IssueCustomField . generate! ( :trackers  = >  Tracker . all ,  :project_ids  = >  [ 1 ,  3 ,  4 ] ,  :is_filter  = >  true ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project_id  = >  3 ,  :tracker_id  = >  2 ,  :custom_field_values  = >  { field . id . to_s  = >  'Foo' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project_id  = >  4 ,  :tracker_id  = >  2 ,  :custom_field_values  = >  { field . id . to_s  = >  'Foo' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ,  :project  = >  Project . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . filters  =  { " cf_ #{ field . id } "  = >  { :operator  = >  '=' ,  :values  = >  [ 'Foo' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  2 ,  find_issues_with_query ( query ) . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field . project_ids  =  [ 1 ,  3 ]  # Disable the field for project 4 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field . save! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  find_issues_with_query ( query ) . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_filter_on_custom_field_should_ignore_trackers_with_field_disabled 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field  =  IssueCustomField . generate! ( :tracker_ids  = >  [ 1 ,  2 ] ,  :is_for_all  = >  true ,  :is_filter  = >  true ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project_id  = >  1 ,  :tracker_id  = >  1 ,  :custom_field_values  = >  { field . id . to_s  = >  'Foo' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . generate! ( :project_id  = >  1 ,  :tracker_id  = >  2 ,  :custom_field_values  = >  { field . id . to_s  = >  'Foo' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ,  :project  = >  Project . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . filters  =  { " cf_ #{ field . id } "  = >  { :operator  = >  '=' ,  :values  = >  [ 'Foo' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  2 ,  find_issues_with_query ( query ) . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field . tracker_ids  =  [ 1 ]  # Disable the field for tracker 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field . save! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  find_issues_with_query ( query ) . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-08-07 19:17:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_on_project_custom_field 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field  =  ProjectCustomField . create! ( :name  = >  'Client' ,  :is_filter  = >  true ,  :field_format  = >  'string' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  field ,  :customized  = >  Project . find ( 3 ) ,  :value  = >  'Foo' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  field ,  :customized  = >  Project . find ( 5 ) ,  :value  = >  'Foo' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-07 19:17:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    filter_name  =  " project.cf_ #{ field . id } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  filter_name ,  query . available_filters . keys 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . filters  =  { filter_name  = >  { :operator  = >  '=' ,  :values  = >  [ 'Foo' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 3 ,  5 ] ,  find_issues_with_query ( query ) . map ( & :project_id ) . uniq . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_filter_on_author_custom_field 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field  =  UserCustomField . create! ( :name  = >  'Client' ,  :is_filter  = >  true ,  :field_format  = >  'string' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  field ,  :customized  = >  User . find ( 3 ) ,  :value  = >  'Foo' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-07 19:17:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    filter_name  =  " author.cf_ #{ field . id } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  filter_name ,  query . available_filters . keys 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . filters  =  { filter_name  = >  { :operator  = >  '=' ,  :values  = >  [ 'Foo' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 3 ] ,  find_issues_with_query ( query ) . map ( & :author_id ) . uniq . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_filter_on_assigned_to_custom_field 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field  =  UserCustomField . create! ( :name  = >  'Client' ,  :is_filter  = >  true ,  :field_format  = >  'string' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  field ,  :customized  = >  User . find ( 3 ) ,  :value  = >  'Foo' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-07 19:17:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    filter_name  =  " assigned_to.cf_ #{ field . id } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  filter_name ,  query . available_filters . keys 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . filters  =  { filter_name  = >  { :operator  = >  '=' ,  :values  = >  [ 'Foo' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 3 ] ,  find_issues_with_query ( query ) . map ( & :assigned_to_id ) . uniq . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_filter_on_fixed_version_custom_field 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field  =  VersionCustomField . create! ( :name  = >  'Client' ,  :is_filter  = >  true ,  :field_format  = >  'string' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    CustomValue . create! ( :custom_field  = >  field ,  :customized  = >  Version . find ( 2 ) ,  :value  = >  'Foo' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-07 19:17:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    filter_name  =  " fixed_version.cf_ #{ field . id } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  filter_name ,  query . available_filters . keys 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . filters  =  { filter_name  = >  { :operator  = >  '=' ,  :values  = >  [ 'Foo' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 2 ] ,  find_issues_with_query ( query ) . map ( & :fixed_version_id ) . uniq . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_on_relations_with_a_specific_issue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 1 ) ,  :issue_to  = >  Issue . find ( 2 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 3 ) ,  :issue_to  = >  Issue . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . filters  =  { " relates "  = >  { :operator  = >  '=' ,  :values  = >  [ '1' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 2 ,  3 ] ,  find_issues_with_query ( query ) . map ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . filters  =  { " relates "  = >  { :operator  = >  '=' ,  :values  = >  [ '2' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ] ,  find_issues_with_query ( query ) . map ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_filter_on_relations_with_any_issues_in_a_project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :cross_project_issue_relations  = >  '1'  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 1 ) ,  :issue_to  = >  Project . find ( 2 ) . issues . first ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 2 ) ,  :issue_to  = >  Project . find ( 2 ) . issues . first ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 1 ) ,  :issue_to  = >  Project . find ( 3 ) . issues . first ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . filters  =  { " relates "  = >  { :operator  = >  '=p' ,  :values  = >  [ '2' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ,  2 ] ,  find_issues_with_query ( query ) . map ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . filters  =  { " relates "  = >  { :operator  = >  '=p' ,  :values  = >  [ '3' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ] ,  find_issues_with_query ( query ) . map ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . filters  =  { " relates "  = >  { :operator  = >  '=p' ,  :values  = >  [ '4' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ ] ,  find_issues_with_query ( query ) . map ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_filter_on_relations_with_any_issues_not_in_a_project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :cross_project_issue_relations  = >  '1'  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 1 ) ,  :issue_to  = >  Project . find ( 2 ) . issues . first ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      #IssueRelation.create!(:relation_type => "relates", :issue_from => Issue.find(2), :issue_to => Project.find(1).issues.first) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 1 ) ,  :issue_to  = >  Project . find ( 3 ) . issues . first ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . filters  =  { " relates "  = >  { :operator  = >  '=!p' ,  :values  = >  [ '1' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ] ,  find_issues_with_query ( query ) . map ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-10-04 18:10:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_on_relations_with_no_issues_in_a_project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :cross_project_issue_relations  = >  '1'  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 1 ) ,  :issue_to  = >  Project . find ( 2 ) . issues . first ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 2 ) ,  :issue_to  = >  Project . find ( 3 ) . issues . first ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_to  = >  Project . find ( 2 ) . issues . first ,  :issue_from  = >  Issue . find ( 3 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-10-04 18:10:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . filters  =  { " relates "  = >  { :operator  = >  '!p' ,  :values  = >  [ '2' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ids  =  find_issues_with_query ( query ) . map ( & :id ) . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  2 ,  ids 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_include  1 ,  ids 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_include  3 ,  ids 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_on_relations_with_no_issues 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 1 ) ,  :issue_to  = >  Issue . find ( 2 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 3 ) ,  :issue_to  = >  Issue . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . filters  =  { " relates "  = >  { :operator  = >  '!*' ,  :values  = >  [ '' ] } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ids  =  find_issues_with_query ( query ) . map ( & :id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ ] ,  ids  &  [ 1 ,  2 ,  3 ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_include  4 ,  ids 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 15:19:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_on_relations_with_any_issues 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    IssueRelation . delete_all 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 1 ) ,  :issue_to  = >  Issue . find ( 2 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  Issue . find ( 3 ) ,  :issue_to  = >  Issue . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query . filters  =  { " relates "  = >  { :operator  = >  '*' ,  :values  = >  [ '' ] } } 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 15:19:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ 1 ,  2 ,  3 ] ,  find_issues_with_query ( query ) . map ( & :id ) . sort 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-29 12:57:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-07-28 15:29:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_filter_on_relations_should_not_ignore_other_filter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue  =  Issue . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue1  =  Issue . generate! ( :status_id  = >  1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issue2  =  Issue . generate! ( :status_id  = >  2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  issue ,  :issue_to  = >  issue1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    IssueRelation . create! ( :relation_type  = >  " relates " ,  :issue_from  = >  issue ,  :issue_to  = >  issue2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query . filters  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      " status_id "  = >  { :operator  = >  '=' ,  :values  = >  [ '1' ] } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      " relates "  = >  { :operator  = >  '=' ,  :values  = >  [ issue . id . to_s ] } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ issue1 ] ,  find_issues_with_query ( query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-04-12 16:53:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_statement_should_be_nil_with_no_filters 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-04-12 16:53:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q . filters  =  { } 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-04-12 16:53:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  q . valid? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  q . statement 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-10-01 08:44:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_default_columns 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-06 17:48:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  q . columns . any? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . inline_columns . any? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . block_columns . empty? 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-01 08:44:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-10-01 08:44:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_set_column_names 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-01 08:44:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q . column_names  =  [ 'tracker' ,  :subject ,  '' ,  'unknonw_column' ] 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-23 10:53:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ :id ,  :tracker ,  :subject ] ,  q . columns . collect  { | c |  c . name } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_has_column_should_accept_a_column_name 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    q . column_names  =  [ 'tracker' ,  :subject ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . has_column? ( :tracker ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! q . has_column? ( :category ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_has_column_should_accept_a_column 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    q . column_names  =  [ 'tracker' ,  :subject ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    tracker_column  =  q . available_columns . detect  { | c |  c . name == :tracker } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_kind_of  QueryColumn ,  tracker_column 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    category_column  =  q . available_columns . detect  { | c |  c . name == :category } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_kind_of  QueryColumn ,  category_column 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . has_column? ( tracker_column ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! q . has_column? ( category_column ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-01 08:44:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-06 17:48:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_inline_and_block_columns 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-06 17:48:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q . column_names  =  [ 'subject' ,  'description' ,  'tracker' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-23 10:53:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ :id ,  :subject ,  :tracker ] ,  q . inline_columns . map ( & :name ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-06 17:48:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ :description ] ,  q . block_columns . map ( & :name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_custom_field_columns_should_be_inline 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-06 17:48:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    columns  =  q . available_columns . select  { | column |  column . is_a?  QueryCustomFieldColumn } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  columns . any? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  columns . detect  { | column |  ! column . inline? } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-12-04 16:43:32 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_query_should_preload_spent_hours 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new ( :name  = >  '_' ,  :column_names  = >  [ :subject ,  :spent_hours ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-04 16:43:32 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  q . has_column? ( :spent_hours ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  q . issues 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  issues . first . instance_variable_get ( " @spent_hours " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-16 18:07:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_groupable_columns_should_include_custom_fields 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    column  =  q . groupable_columns . detect  { | c |  c . name  ==  :cf_1 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  column 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_kind_of  QueryCustomFieldColumn ,  column 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_groupable_columns_should_not_include_multi_custom_fields 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field  =  CustomField . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field . update_attribute  :multiple ,  true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    column  =  q . groupable_columns . detect  { | c |  c . name  ==  :cf_1 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  column 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-16 18:07:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-21 21:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-07-24 17:39:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_groupable_columns_should_include_user_custom_fields 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    cf  =  IssueCustomField . create! ( :name  = >  'User' ,  :is_for_all  = >  true ,  :tracker_ids  = >  [ 1 ] ,  :field_format  = >  'user' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-24 17:39:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  q . groupable_columns . detect  { | c |  c . name  ==  " cf_ #{ cf . id } " . to_sym } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_groupable_columns_should_include_version_custom_fields 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    cf  =  IssueCustomField . create! ( :name  = >  'User' ,  :is_for_all  = >  true ,  :tracker_ids  = >  [ 1 ] ,  :field_format  = >  'version' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-24 17:39:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  q . groupable_columns . detect  { | c |  c . name  ==  " cf_ #{ cf . id } " . to_sym } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-12-21 21:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_grouped_with_valid_column 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new ( :group_by  = >  'status' ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-21 21:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  q . grouped? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  q . group_by_column 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  :status ,  q . group_by_column . name 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  q . group_by_statement 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  'status' ,  q . group_by_statement 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-12-21 21:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_grouped_with_invalid_column 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new ( :group_by  = >  'foo' ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-21 21:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  ! q . grouped? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  q . group_by_column 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  q . group_by_statement 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-09 13:10:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-11-26 17:37:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_sortable_columns_should_sort_assignees_according_to_user_format_setting 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :user_format  = >  'lastname_coma_firstname'  do 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-26 17:37:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      assert  q . sortable_columns . has_key? ( 'assigned_to' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  %w( users.lastname users.firstname users.id ) ,  q . sortable_columns [ 'assigned_to' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-09 13:10:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-11-26 17:37:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_sortable_columns_should_sort_authors_according_to_user_format_setting 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_settings  :user_format  = >  'lastname_coma_firstname'  do 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-26 17:37:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      assert  q . sortable_columns . has_key? ( 'author' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_equal  %w( authors.lastname authors.firstname authors.id ) ,  q . sortable_columns [ 'author' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_sortable_columns_should_include_custom_field 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  q . sortable_columns [ 'cf_1' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_sortable_columns_should_not_include_multi_custom_field 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field  =  CustomField . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    field . update_attribute  :multiple ,  true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-29 20:51:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  ! q . sortable_columns [ 'cf_1' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-12 18:06:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_default_sort 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-12 18:06:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ ] ,  q . sort_criteria 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-12 18:06:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_set_sort_criteria_with_hash 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-12 18:06:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q . sort_criteria  =  { '0'  = >  [ 'priority' ,  'desc' ] ,  '2'  = >  [ 'tracker' ] } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ [ 'priority' ,  'desc' ] ,  [ 'tracker' ,  'asc' ] ] ,  q . sort_criteria 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-12 18:06:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_set_sort_criteria_with_array 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-12 18:06:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q . sort_criteria  =  [ [ 'priority' ,  'desc' ] ,  'tracker' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ [ 'priority' ,  'desc' ] ,  [ 'tracker' ,  'asc' ] ] ,  q . sort_criteria 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-12 18:06:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_create_query_with_sort 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new ( :name  = >  'Sorted' ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-12 18:06:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q . sort_criteria  =  [ [ 'priority' ,  'desc' ] ,  'tracker' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . save 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    q . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  [ [ 'priority' ,  'desc' ] ,  [ 'tracker' ,  'asc' ] ] ,  q . sort_criteria 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 16:33:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_sort_by_string_custom_field_asc 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 16:33:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    c  =  q . available_columns . find  { | col |  col . is_a? ( QueryCustomFieldColumn )  &&  col . custom_field . field_format  ==  'string'  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  c 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  c . sortable 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-03 12:28:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issues  =  q . issues ( :order  = >  " #{ c . sortable }  ASC " ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 16:33:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    values  =  issues . collect  { | i |  i . custom_value_for ( c . custom_field ) . to_s } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 18:38:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  ! values . empty? 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 16:33:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  values . sort ,  values 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 16:33:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_sort_by_string_custom_field_desc 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 16:33:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    c  =  q . available_columns . find  { | col |  col . is_a? ( QueryCustomFieldColumn )  &&  col . custom_field . field_format  ==  'string'  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  c 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  c . sortable 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-03 12:28:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issues  =  q . issues ( :order  = >  " #{ c . sortable }  DESC " ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 16:33:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    values  =  issues . collect  { | i |  i . custom_value_for ( c . custom_field ) . to_s } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 18:38:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  ! values . empty? 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 16:33:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  values . sort . reverse ,  values 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 18:38:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_sort_by_float_custom_field_asc 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 18:38:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    c  =  q . available_columns . find  { | col |  col . is_a? ( QueryCustomFieldColumn )  &&  col . custom_field . field_format  ==  'float'  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  c 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  c . sortable 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-03 12:28:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issues  =  q . issues ( :order  = >  " #{ c . sortable }  ASC " ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-11 18:38:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    values  =  issues . collect  { | i |  begin ;  Kernel . Float ( i . custom_value_for ( c . custom_field ) . to_s ) ;  rescue ;  nil ;  end } . compact 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! values . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  values . sort ,  values 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-28 10:29:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_invalid_query_should_raise_query_statement_invalid_error 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-28 10:29:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_raise  Query :: StatementInvalid  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      q . issues ( :conditions  = >  " foo = 1 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-24 16:48:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_issue_count 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-24 16:48:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    issue_count  =  q . issue_count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  q . issues . size ,  issue_count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_issue_count_with_archived_issues 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-22 11:56:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    p  =  Project . generate!  do  | project | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      project . status  =  Project :: STATUS_ARCHIVED 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-24 16:48:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    i  =  Issue . generate! (  :project  = >  p ,  :tracker  = >  p . trackers . first  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! i . visible? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    test_issue_count 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-02 18:57:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_issue_count_by_association_group 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new ( :name  = >  '_' ,  :group_by  = >  'assigned_to' ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-02 18:57:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    count_by_group  =  q . issue_count_by_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_kind_of  Hash ,  count_by_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  %w( NilClass User ) ,  count_by_group . keys . collect  { | k |  k . class . name } . uniq . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  %w( Fixnum ) ,  count_by_group . values . collect  { | k |  k . class . name } . uniq 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  count_by_group . has_key? ( User . find ( 3 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_issue_count_by_list_custom_field_group 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new ( :name  = >  '_' ,  :group_by  = >  'cf_1' ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-02 18:57:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    count_by_group  =  q . issue_count_by_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_kind_of  Hash ,  count_by_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  %w( NilClass String ) ,  count_by_group . keys . collect  { | k |  k . class . name } . uniq . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  %w( Fixnum ) ,  count_by_group . values . collect  { | k |  k . class . name } . uniq 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  count_by_group . has_key? ( 'MySQL' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-02 18:57:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_issue_count_by_date_custom_field_group 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new ( :name  = >  '_' ,  :group_by  = >  'cf_8' ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-02 18:57:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    count_by_group  =  q . issue_count_by_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_kind_of  Hash ,  count_by_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  %w( Date NilClass ) ,  count_by_group . keys . collect  { | k |  k . class . name } . uniq . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  %w( Fixnum ) ,  count_by_group . values . collect  { | k |  k . class . name } . uniq 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-04-28 13:00:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_issue_count_with_nil_group_only 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Issue . update_all ( " assigned_to_id = NULL " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new ( :name  = >  '_' ,  :group_by  = >  'assigned_to' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-28 13:00:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    count_by_group  =  q . issue_count_by_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_kind_of  Hash ,  count_by_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  1 ,  count_by_group . keys . size 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  count_by_group . keys . first 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-01-03 20:09:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_issue_ids 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-03 20:09:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    order  =  " issues.subject, issues.id " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    issues  =  q . issues ( :order  = >  order ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-03 21:35:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  issues . map ( & :id ) ,  q . issue_ids ( :order  = >  order ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-03 20:09:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-25 12:50:33 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_label_for 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-01 01:29:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    set_language_if_valid  'en' 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2011-12-26 13:34:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  'Assignee' ,  q . label_for ( 'assigned_to_id' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-25 12:50:33 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-09-01 02:37:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_label_for_fr 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    set_language_if_valid  'fr' 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . new 
							 
						 
					
						
							
								
									
										
										
										
											2014-10-22 17:37:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  " Assign \xc3 \xa9   \xc3 \xa0 " . force_encoding ( 'UTF-8' ) ,  q . label_for ( 'assigned_to_id' ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-01 02:37:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-03-30 12:29:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_editable_by 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    admin  =  User . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    manager  =  User . find ( 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    developer  =  User . find ( 3 ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-03-30 12:29:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # Public query on project 1 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . find ( 1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-30 12:29:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  q . editable_by? ( admin ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . editable_by? ( manager ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! q . editable_by? ( developer ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Private query on project 1 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . find ( 2 ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-30 12:29:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  q . editable_by? ( admin ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! q . editable_by? ( manager ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . editable_by? ( developer ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Private query for all projects 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . find ( 3 ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-30 12:29:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  q . editable_by? ( admin ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! q . editable_by? ( manager ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . editable_by? ( developer ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Public query for all projects 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . find ( 4 ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-30 12:29:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  q . editable_by? ( admin ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! q . editable_by? ( manager ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! q . editable_by? ( developer ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-06 16:57:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_visible_scope 
							 
						 
					
						
							
								
									
										
										
										
											2012-12-09 14:10:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    query_ids  =  IssueQuery . visible ( User . anonymous ) . map ( & :id ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-06 16:57:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query_ids . include? ( 1 ) ,  'public query on public project was not visible' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query_ids . include? ( 4 ) ,  'public query for all projects was not visible' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! query_ids . include? ( 2 ) ,  'private query on public project was visible' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! query_ids . include? ( 3 ) ,  'private query for all projects was visible' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! query_ids . include? ( 7 ) ,  'public query on private project was visible' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-08-04 21:01:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-07-11 17:45:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_query_with_public_visibility_should_be_visible_to_anyone 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . create! ( :name  = >  'Query' ,  :visibility  = >  IssueQuery :: VISIBILITY_PUBLIC ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . visible? ( User . anonymous ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  IssueQuery . visible ( User . anonymous ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . visible? ( User . find ( 7 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  IssueQuery . visible ( User . find ( 7 ) ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . visible? ( User . find ( 2 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  IssueQuery . visible ( User . find ( 2 ) ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . visible? ( User . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  IssueQuery . visible ( User . find ( 1 ) ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_query_with_roles_visibility_should_be_visible_to_user_with_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . create! ( :name  = >  'Query' ,  :visibility  = >  IssueQuery :: VISIBILITY_ROLES ,  :role_ids  = >  [ 1 , 2 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! q . visible? ( User . anonymous ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  IssueQuery . visible ( User . anonymous ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! q . visible? ( User . find ( 7 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  IssueQuery . visible ( User . find ( 7 ) ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . visible? ( User . find ( 2 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  IssueQuery . visible ( User . find ( 2 ) ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . visible? ( User . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  IssueQuery . visible ( User . find ( 1 ) ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_query_with_private_visibility_should_be_visible_to_owner 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    q  =  IssueQuery . create! ( :name  = >  'Query' ,  :visibility  = >  IssueQuery :: VISIBILITY_PRIVATE ,  :user  = >  User . find ( 7 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! q . visible? ( User . anonymous ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  IssueQuery . visible ( User . anonymous ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . visible? ( User . find ( 7 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  IssueQuery . visible ( User . find ( 7 ) ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! q . visible? ( User . find ( 2 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  IssueQuery . visible ( User . find ( 2 ) ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  q . visible? ( User . find ( 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_nil  IssueQuery . visible ( User . find ( 1 ) ) . find_by_id ( q . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 10:02:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # available_filters should include users of visible projects in cross-project view "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    users  =  IssueQuery . new . available_filters [ " assigned_to_id " ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  users 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  users [ :values ] . map { | u | u [ 1 ] } . include? ( " 3 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 18:46:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 10:02:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # available_filters should include users of subprojects "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    user1  =  User . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    user2  =  User . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  Project . find ( 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Member . create! ( :principal  = >  user1 ,  :project  = >  project . children . visible . first ,  :role_ids  = >  [ 1 ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 19:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 10:02:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    users  =  IssueQuery . new ( :project  = >  project ) . available_filters [ " assigned_to_id " ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  users 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  users [ :values ] . map { | u | u [ 1 ] } . include? ( user1 . id . to_s ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  ! users [ :values ] . map { | u | u [ 1 ] } . include? ( user2 . id . to_s ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 10:02:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # available_filters should include visible projects in cross-project view "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    projects  =  IssueQuery . new . available_filters [ " project_id " ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_not_nil  projects 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  projects [ :values ] . map { | u | u [ 1 ] } . include? ( " 1 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 10:02:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # available_filters should include 'member_of_group' filter "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . available_filters . keys . include? ( " member_of_group " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  :list_optional ,  query . available_filters [ " member_of_group " ] [ :type ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . available_filters [ " member_of_group " ] [ :values ] . present? 
							 
						 
					
						
							
								
									
										
										
										
											2014-09-28 14:51:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  Group . givable . sort . map  { | g |  [ g . name ,  g . id . to_s ] } , 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 10:02:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      query . available_filters [ " member_of_group " ] [ :values ] . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 19:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 10:02:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " # available_filters should include 'assigned_to_role' filter "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    query  =  IssueQuery . new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . available_filters . keys . include? ( " assigned_to_role " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  :list_optional ,  query . available_filters [ " assigned_to_role " ] [ :type ] 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 19:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 10:02:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  query . available_filters [ " assigned_to_role " ] [ :values ] . include? ( [ 'Manager' , '1' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . available_filters [ " assigned_to_role " ] [ :values ] . include? ( [ 'Developer' , '2' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  query . available_filters [ " assigned_to_role " ] [ :values ] . include? ( [ 'Reporter' , '3' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 19:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-03 10:02:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert  !  query . available_filters [ " assigned_to_role " ] [ :values ] . include? ( [ 'Non member' , '4' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert  !  query . available_filters [ " assigned_to_role " ] [ :values ] . include? ( [ 'Anonymous' , '5' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-08-04 21:01:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 18:46:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-07-13 09:20:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  test_available_filters_should_include_custom_field_according_to_user_visibility 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    visible_field  =  IssueCustomField . generate! ( :is_for_all  = >  true ,  :is_filter  = >  true ,  :visible  = >  true ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    hidden_field  =  IssueCustomField . generate! ( :is_for_all  = >  true ,  :is_filter  = >  true ,  :visible  = >  false ,  :role_ids  = >  [ 1 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_current_user  User . find ( 3 )  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      query  =  IssueQuery . new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_include  " cf_ #{ visible_field . id } " ,  query . available_filters . keys 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_not_include  " cf_ #{ hidden_field . id } " ,  query . available_filters . keys 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_available_columns_should_include_custom_field_according_to_user_visibility 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    visible_field  =  IssueCustomField . generate! ( :is_for_all  = >  true ,  :is_filter  = >  true ,  :visible  = >  true ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    hidden_field  =  IssueCustomField . generate! ( :is_for_all  = >  true ,  :is_filter  = >  true ,  :visible  = >  false ,  :role_ids  = >  [ 1 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    with_current_user  User . find ( 3 )  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      query  =  IssueQuery . new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_include  :" cf_ #{ visible_field . id } " ,  query . available_columns . map ( & :name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      assert_not_include  :" cf_ #{ hidden_field . id } " ,  query . available_columns . map ( & :name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  setup_member_of_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Group . destroy_all  # No fixtures 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @user_in_group  =  User . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @second_user_in_group  =  User . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @user_in_group2  =  User . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @user_not_in_group  =  User . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @group  =  Group . generate! . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @group . users  <<  @user_in_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @group . users  <<  @second_user_in_group 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 19:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    @group2  =  Group . generate! . reload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @group2 . users  <<  @user_in_group2 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 19:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    @query  =  IssueQuery . new ( :name  = >  '_' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-09 13:10:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " member_of_group filter should search assigned to for users in the group "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_member_of_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'member_of_group' ,  '=' ,  [ @group . id . to_s ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_query_statement_includes  @query ,  " #{ Issue . table_name } .assigned_to_id IN (' #{ @user_in_group . id } ',' #{ @second_user_in_group . id } ',' #{ @group . id } ') " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_find_issues_with_query_is_successful  @query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  test  " member_of_group filter should search not assigned to any group member (none) "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_member_of_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'member_of_group' ,  '!*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Users not in a group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_query_statement_includes  @query ,  " #{ Issue . table_name } .assigned_to_id IS NULL OR  #{ Issue . table_name } .assigned_to_id NOT IN (' #{ @user_in_group . id } ',' #{ @second_user_in_group . id } ',' #{ @user_in_group2 . id } ',' #{ @group . id } ',' #{ @group2 . id } ') " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_find_issues_with_query_is_successful  @query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 19:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " member_of_group filter should search assigned to any group member (all) "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_member_of_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'member_of_group' ,  '*' ,  [ '' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-19 15:11:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # Only users in a group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_query_statement_includes  @query ,  " #{ Issue . table_name } .assigned_to_id IN (' #{ @user_in_group . id } ',' #{ @second_user_in_group . id } ',' #{ @user_in_group2 . id } ',' #{ @group . id } ',' #{ @group2 . id } ') " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_find_issues_with_query_is_successful  @query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-09 13:10:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " member_of_group filter should return an empty set with = empty group "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_member_of_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @empty_group  =  Group . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'member_of_group' ,  '=' ,  [ @empty_group . id . to_s ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-19 15:11:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_equal  [ ] ,  find_issues_with_query ( @query ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-19 15:11:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " member_of_group filter should return issues with ! empty group "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_member_of_group 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @empty_group  =  Group . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'member_of_group' ,  '!' ,  [ @empty_group . id . to_s ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-19 15:11:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_find_issues_with_query_is_successful  @query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-19 15:11:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  def  setup_assigned_to_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @manager_role  =  Role . find_by_name ( 'Manager' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @developer_role  =  Role . find_by_name ( 'Developer' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-19 15:11:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    @project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @manager  =  User . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @developer  =  User . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @boss  =  User . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @guest  =  User . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . add_to_project ( @manager ,  @project ,  @manager_role ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . add_to_project ( @developer ,  @project ,  @developer_role ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . add_to_project ( @boss ,  @project ,  [ @manager_role ,  @developer_role ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 19:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    @issue1  =  Issue . generate! ( :project  = >  @project ,  :assigned_to_id  = >  @manager . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @issue2  =  Issue . generate! ( :project  = >  @project ,  :assigned_to_id  = >  @developer . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @issue3  =  Issue . generate! ( :project  = >  @project ,  :assigned_to_id  = >  @boss . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @issue4  =  Issue . generate! ( :project  = >  @project ,  :assigned_to_id  = >  @guest . id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @issue5  =  Issue . generate! ( :project  = >  @project ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 19:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    @query  =  IssueQuery . new ( :name  = >  '_' ,  :project  = >  @project ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 19:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " assigned_to_role filter should search assigned to for users with the Role "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_assigned_to_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'assigned_to_role' ,  '=' ,  [ @manager_role . id . to_s ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 19:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_query_result  [ @issue1 ,  @issue3 ] ,  @query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  test  " assigned_to_role filter should search assigned to for users with the Role on the issue project "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_assigned_to_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    other_project  =  Project . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    User . add_to_project ( @developer ,  other_project ,  @manager_role ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'assigned_to_role' ,  '=' ,  [ @manager_role . id . to_s ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-30 05:49:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-30 13:41:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    assert_query_result  [ @issue1 ,  @issue3 ] ,  @query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  test  " assigned_to_role filter should return an empty set with empty role "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_assigned_to_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @empty_role  =  Role . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'assigned_to_role' ,  '=' ,  [ @empty_role . id . to_s ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_query_result  [ ] ,  @query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  test  " assigned_to_role filter should search assigned to for users without the Role "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_assigned_to_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'assigned_to_role' ,  '!' ,  [ @manager_role . id . to_s ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_query_result  [ @issue2 ,  @issue4 ,  @issue5 ] ,  @query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  test  " assigned_to_role filter should search assigned to for users not assigned to any Role (none) "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_assigned_to_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'assigned_to_role' ,  '!*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_query_result  [ @issue4 ,  @issue5 ] ,  @query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  test  " assigned_to_role filter should search assigned to for users assigned to any Role (all) "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_assigned_to_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'assigned_to_role' ,  '*' ,  [ '' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_query_result  [ @issue1 ,  @issue2 ,  @issue3 ] ,  @query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  test  " assigned_to_role filter should return issues with ! empty role "  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    setup_assigned_to_role 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @empty_role  =  Role . generate! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    @query . add_filter ( 'assigned_to_role' ,  '!' ,  [ @empty_role . id . to_s ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_query_result  [ @issue1 ,  @issue2 ,  @issue3 ,  @issue4 ,  @issue5 ] ,  @query 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-10 18:46:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-04 21:00:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_query_column_should_accept_a_symbol_as_caption 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-04 23:43:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    set_language_if_valid  'en' 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-04 21:00:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    c  =  QueryColumn . new ( 'foo' ,  :caption  = >  :general_text_Yes ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  'Yes' ,  c . caption 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  def  test_query_column_should_accept_a_proc_as_caption 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    c  =  QueryColumn . new ( 'foo' ,  :caption  = >  lambda  { 'Foo' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assert_equal  'Foo' ,  c . caption 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 12:29:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								end