@@ -435,6 +435,28 JSON | |||
|
435 | 435 | assert_equal ["V1", "V3"], issue.custom_field_value(field).sort |
|
436 | 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 | 460 | test "POST /issues.json with failure should return errors" do |
|
439 | 461 | assert_no_difference('Issue.count') do |
|
440 | 462 | post '/issues.json', {:issue => {:project_id => 1}}, credentials('jsmith') |
@@ -512,6 +534,62 JSON | |||
|
512 | 534 | assert_equal "Notes only", journal.notes |
|
513 | 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 | 593 | test "PUT /issues/:id.xml with failed update" do |
|
516 | 594 | put '/issues/6.xml', {:issue => {:subject => ''}}, credentials('jsmith') |
|
517 | 595 |
@@ -190,6 +190,13 module ObjectHelpers | |||
|
190 | 190 | field |
|
191 | 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 | 200 | def Changeset.generate!(attributes={}) |
|
194 | 201 | @generated_changeset_rev ||= '123456' |
|
195 | 202 | @generated_changeset_rev.succ! |
General Comments 0
You need to be logged in to leave comments.
Login now