瀏覽代碼

Fixed: Unable to set custom fields for versions using the REST API (#13850).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11760 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/2.4.0
Jean-Philippe Lang 11 年之前
父節點
當前提交
5a3b903733
共有 3 個文件被更改,包括 36 次插入1 次删除
  1. 2
    1
      app/models/version.rb
  2. 23
    0
      test/integration/api_test/versions_test.rb
  3. 11
    0
      test/object_helpers.rb

+ 2
- 1
app/models/version.rb 查看文件

@@ -47,7 +47,8 @@ class Version < ActiveRecord::Base
'wiki_page_title',
'status',
'sharing',
'custom_field_values'
'custom_field_values',
'custom_fields'

# Returns true if +user+ or current user is allowed to view the version
def visible?(user=User.current)

+ 23
- 0
test/integration/api_test/versions_test.rb 查看文件

@@ -82,6 +82,29 @@ class Redmine::ApiTest::VersionsTest < Redmine::ApiTest::Base
assert_tag 'version', :child => {:tag => 'id', :content => version.id.to_s}
end

should "create the version with custom fields" do
field = VersionCustomField.generate!

assert_difference 'Version.count' do
post '/projects/1/versions.xml', {
:version => {
:name => 'API test',
:custom_fields => [
{'id' => field.id.to_s, 'value' => 'Some value'}
]
}
}, credentials('jsmith')
end

version = Version.first(:order => 'id DESC')
assert_equal 'API test', version.name
assert_equal 'Some value', version.custom_field_value(field)

assert_response :created
assert_equal 'application/xml', @response.content_type
assert_select 'version>custom_fields>custom_field[id=?]>value', field.id.to_s, 'Some value'
end

context "with failure" do
should "return the errors" do
assert_no_difference('Version.count') do

+ 11
- 0
test/object_helpers.rb 查看文件

@@ -147,4 +147,15 @@ module ObjectHelpers
attachment.save!
attachment
end

def CustomField.generate!(attributes={})
@generated_custom_field_name ||= 'Custom field 0'
@generated_custom_field_name.succ!
field = new(attributes)
field.name = @generated_custom_field_name.dup if field.name.blank?
field.field_format = 'string' if field.field_format.blank?
yield field if block_given?
field.save!
field
end
end

Loading…
取消
儲存