| 1 | require File.dirname(__FILE__) + '/../test_helper_for_redmine_defects.rb'
 | 
  
    | 2 | 
 | 
  
    | 3 | class TcRedmineDefect13118 < ActiveSupport::TestCase
 | 
  
    | 4 |   #http://www.redmine.org/issues/13118
 | 
  
    | 5 |   
 | 
  
    | 6 |   def test_for_defect_13118_badcase1
 | 
  
    | 7 |     th=TestHelperForRedmineDefects.new()
 | 
  
    | 8 |     new_project = th.create_project("pft1", "Project for test defect 13118", nil, nil)
 | 
  
    | 9 |     new_tracker=th.create_tracker("Tracker4Test13118")
 | 
  
    | 10 |     #add the requested tracker to the requested project
 | 
  
    | 11 |     if !new_project.trackers.include?(new_tracker)
 | 
  
    | 12 |       new_project.trackers.push(new_tracker)
 | 
  
    | 13 |     end
 | 
  
    | 14 |     new_user=th.create_user("usr4defect13118")
 | 
  
    | 15 |     new_issue=th.create_issue("issue4defect13118",new_tracker,new_project,new_user)
 | 
  
    | 16 |     a_issue_custom_field1=th.create_issue_custom_field("EffortRemaining2","int",new_issue)
 | 
  
    | 17 |     new_issue = update_custom_value_in_issue_intern1(new_issue, a_issue_custom_field1, "1.0")
 | 
  
    | 18 |     new_issue.save    
 | 
  
    | 19 |     # import attribute 2
 | 
  
    | 20 |     a_issue_custom_field=th.create_issue_custom_field("Difficulty2","string",new_issue)
 | 
  
    | 21 |     new_issue = update_custom_value_in_issue_intern1(new_issue, a_issue_custom_field, "Medium")
 | 
  
    | 22 |     new_issue.save
 | 
  
    | 23 |   end
 | 
  
    | 24 |   
 | 
  
    | 25 |   def test_for_defect_13118_badcase2
 | 
  
    | 26 |       th=TestHelperForRedmineDefects.new()
 | 
  
    | 27 |       new_project = th.create_project("pft1", "Project for test defect 13118", nil, nil)
 | 
  
    | 28 |       new_tracker=th.create_tracker("Tracker4Test13118")
 | 
  
    | 29 |       #add the requested tracker to the requested project
 | 
  
    | 30 |       if !new_project.trackers.include?(new_tracker)
 | 
  
    | 31 |         new_project.trackers.push(new_tracker)
 | 
  
    | 32 |       end
 | 
  
    | 33 |       new_user=th.create_user("usr4defect13118")
 | 
  
    | 34 |       new_issue=th.create_issue("issue4defect13118",new_tracker,new_project,new_user)
 | 
  
    | 35 |       a_issue_custom_field1=th.create_issue_custom_field("EffortRemaining2","int",new_issue)
 | 
  
    | 36 |       new_issue = update_custom_value_in_issue_intern2(new_issue, a_issue_custom_field1, "1.0")
 | 
  
    | 37 |       new_issue.save    
 | 
  
    | 38 |       # import attribute 2
 | 
  
    | 39 |       a_issue_custom_field=th.create_issue_custom_field("Difficulty2","string",new_issue)
 | 
  
    | 40 |       new_issue = update_custom_value_in_issue_intern2(new_issue, a_issue_custom_field, "Medium")
 | 
  
    | 41 |       new_issue.save
 | 
  
    | 42 |     end
 | 
  
    | 43 |   
 | 
  
    | 44 |   def test_for_defect_13118_goodcase
 | 
  
    | 45 |       th=TestHelperForRedmineDefects.new()
 | 
  
    | 46 |       new_project = th.create_project("pft1", "Project for test defect 13118", nil, nil)
 | 
  
    | 47 |       new_tracker=th.create_tracker("Tracker4Test13118")
 | 
  
    | 48 |       #add the requested tracker to the requested project
 | 
  
    | 49 |       if !new_project.trackers.include?(new_tracker)
 | 
  
    | 50 |         new_project.trackers.push(new_tracker)
 | 
  
    | 51 |       end
 | 
  
    | 52 |       new_user=th.create_user("usr4defect13118")
 | 
  
    | 53 |       new_issue=th.create_issue("issue4defect13118",new_tracker,new_project,new_user)
 | 
  
    | 54 |       a_issue_custom_field1=th.create_issue_custom_field("EffortRemaining2","int",new_issue)
 | 
  
    | 55 |       new_issue = update_custom_value_in_issue_intern1(new_issue, a_issue_custom_field1, "1.0")
 | 
  
    | 56 |       new_issue.save
 | 
  
    | 57 |       new_issue.reload #this save the day
 | 
  
    | 58 |       # import attribute 2
 | 
  
    | 59 |       a_issue_custom_field=th.create_issue_custom_field("Difficulty2","string",new_issue)
 | 
  
    | 60 |       new_issue = update_custom_value_in_issue_intern1(new_issue, a_issue_custom_field, "Medium")
 | 
  
    | 61 |       new_issue.save
 | 
  
    | 62 |     end
 | 
  
    | 63 |   
 | 
  
    | 64 | private
 | 
  
    | 65 | 
 | 
  
    | 66 |   def update_custom_value_in_issue_intern1(a_issue, a_custom_field, the_value)
 | 
  
    | 67 |     #against bug in redmine that sometimes the array a_issue.custom_field_values is empty (or old) but not nil
 | 
  
    | 68 |     #see http://www.redmine.org/issues/13119
 | 
  
    | 69 |     a_issue.reset_custom_values!
 | 
  
    | 70 |     a_issue.save_custom_field_values
 | 
  
    | 71 |     cu_fi_val = a_issue.custom_field_values.detect {|cfv| cfv.custom_field == a_custom_field}
 | 
  
    | 72 |     assert_not_nil(cu_fi_val,"Found the defect 13118!")  
 | 
  
    | 73 |     cu_fi_val.value = the_value
 | 
  
    | 74 |     a_issue.save
 | 
  
    | 75 |     return a_issue
 | 
  
    | 76 |   end
 | 
  
    | 77 |   
 | 
  
    | 78 |   def update_custom_value_in_issue_intern2(a_issue, a_custom_field, the_value)
 | 
  
    | 79 |     #against bug in redmine that sometimes the array a_issue.custom_field_values is empty (or old) but not nil
 | 
  
    | 80 |     #see http://www.redmine.org/issues/13119
 | 
  
    | 81 |     a_issue.reset_custom_values!
 | 
  
    | 82 |     a_issue.save_custom_field_values
 | 
  
    | 83 |     a_issue.custom_field_values={a_custom_field.id => the_value}
 | 
  
    | 84 |     a_issue.save_custom_field_values
 | 
  
    | 85 |     cu_fi_val = a_issue.custom_field_values.detect {|cfv| cfv.custom_field == a_custom_field}
 | 
  
    | 86 |     assert_not_nil(cu_fi_val,"Found the defect 13118!")  
 | 
  
    | 87 |     return a_issue
 | 
  
    | 88 |   end
 | 
  
    | 89 |    
 | 
  
    | 90 | end
 |