##// END OF EJS Templates
Adds tests for default custom field value (#21074)....
Jean-Philippe Lang -
r14386:fac0f7f38b1d
parent child
Show More
@@ -435,6 +435,28 JSON
435 assert_equal ["V1", "V3"], issue.custom_field_value(field).sort
435 assert_equal ["V1", "V3"], issue.custom_field_value(field).sort
436 end
436 end
437
437
438 test "POST /issues.json with omitted custom field should set default value" do
439 field = IssueCustomField.generate!(:default_value => "Default")
440
441 issue = new_record(Issue) do
442 post '/issues.json',
443 {:issue => {:project_id => 1, :subject => 'API', :custom_field_values => {}}},
444 credentials('jsmith')
445 end
446 assert_equal "Default", issue.custom_field_value(field)
447 end
448
449 test "POST /issues.json with custom field set to blank should not set default value" do
450 field = IssueCustomField.generate!(:default_value => "Default")
451
452 issue = new_record(Issue) do
453 post '/issues.json',
454 {:issue => {:project_id => 1, :subject => 'API', :custom_field_values => {field.id.to_s => ""}}},
455 credentials('jsmith')
456 end
457 assert_equal "", issue.custom_field_value(field)
458 end
459
438 test "POST /issues.json with failure should return errors" do
460 test "POST /issues.json with failure should return errors" do
439 assert_no_difference('Issue.count') do
461 assert_no_difference('Issue.count') do
440 post '/issues.json', {:issue => {:project_id => 1}}, credentials('jsmith')
462 post '/issues.json', {:issue => {:project_id => 1}}, credentials('jsmith')
@@ -512,6 +534,62 JSON
512 assert_equal "Notes only", journal.notes
534 assert_equal "Notes only", journal.notes
513 end
535 end
514
536
537 test "PUT /issues/:id.json with omitted custom field should not change blank value to default value" do
538 field = IssueCustomField.generate!(:default_value => "Default")
539 issue = Issue.generate!(:project_id => 1, :tracker_id => 1, :custom_field_values => {field.id.to_s => ""})
540 assert_equal "", issue.reload.custom_field_value(field)
541
542 assert_difference('Journal.count') do
543 put "/issues/#{issue.id}.json",
544 {:issue => {:custom_field_values => {}, :notes => 'API'}},
545 credentials('jsmith')
546 end
547
548 assert_equal "", issue.reload.custom_field_value(field)
549 end
550
551 test "PUT /issues/:id.json with custom field set to blank should not change blank value to default value" do
552 field = IssueCustomField.generate!(:default_value => "Default")
553 issue = Issue.generate!(:project_id => 1, :tracker_id => 1, :custom_field_values => {field.id.to_s => ""})
554 assert_equal "", issue.reload.custom_field_value(field)
555
556 assert_difference('Journal.count') do
557 put "/issues/#{issue.id}.json",
558 {:issue => {:custom_field_values => {field.id.to_s => ""}, :notes => 'API'}},
559 credentials('jsmith')
560 end
561
562 assert_equal "", issue.reload.custom_field_value(field)
563 end
564
565 test "PUT /issues/:id.json with tracker change and omitted custom field specific to that tracker does not set default value" do
566 field = IssueCustomField.generate!(:default_value => "Default", :tracker_ids => [2])
567 issue = Issue.generate!(:project_id => 1, :tracker_id => 1)
568
569 assert_difference('Journal.count') do
570 put "/issues/#{issue.id}.json",
571 {:issue => {:tracker_id => 2, :custom_field_values => {}, :notes => 'API'}},
572 credentials('jsmith')
573 end
574
575 assert_equal 2, issue.reload.tracker_id
576 assert_nil issue.reload.custom_field_value(field)
577 end
578
579 test "PUT /issues/:id.json with tracker change and custom field specific to that tracker set to blank should not set default value" do
580 field = IssueCustomField.generate!(:default_value => "Default", :tracker_ids => [2])
581 issue = Issue.generate!(:project_id => 1, :tracker_id => 1)
582
583 assert_difference('Journal.count') do
584 put "/issues/#{issue.id}.json",
585 {:issue => {:tracker_id => 2, :custom_field_values => {field.id.to_s => ""}, :notes => 'API'}},
586 credentials('jsmith')
587 end
588
589 assert_equal 2, issue.reload.tracker_id
590 assert_equal "", issue.reload.custom_field_value(field)
591 end
592
515 test "PUT /issues/:id.xml with failed update" do
593 test "PUT /issues/:id.xml with failed update" do
516 put '/issues/6.xml', {:issue => {:subject => ''}}, credentials('jsmith')
594 put '/issues/6.xml', {:issue => {:subject => ''}}, credentials('jsmith')
517
595
@@ -190,6 +190,13 module ObjectHelpers
190 field
190 field
191 end
191 end
192
192
193 def IssueCustomField.generate!(attributes={})
194 super do |field|
195 field.is_for_all = true unless attributes.key?(:is_for_all)
196 field.tracker_ids = Tracker.all.ids unless attributes.key?(:tracker_ids) || attributes.key?(:trackers)
197 end
198 end
199
193 def Changeset.generate!(attributes={})
200 def Changeset.generate!(attributes={})
194 @generated_changeset_rev ||= '123456'
201 @generated_changeset_rev ||= '123456'
195 @generated_changeset_rev.succ!
202 @generated_changeset_rev.succ!
General Comments 0
You need to be logged in to leave comments. Login now