Patch #22356 » update_attachment_api_with_tests.diff
app/controllers/attachments_controller.rb | ||
---|---|---|
22 | 22 |
before_filter :delete_authorize, :only => :destroy |
23 | 23 |
before_filter :authorize_global, :only => :upload |
24 | 24 | |
25 |
accept_api_auth :show, :download, :thumbnail, :upload, :destroy |
|
25 |
accept_api_auth :show, :download, :thumbnail, :upload, :update, :destroy
|
|
26 | 26 | |
27 | 27 |
def show |
28 | 28 |
respond_to do |format| |
... | ... | |
109 | 109 |
def update |
110 | 110 |
if params[:attachments].is_a?(Hash) |
111 | 111 |
if Attachment.update_attachments(@attachments, params[:attachments]) |
112 |
redirect_back_or_default home_path |
|
113 |
return |
|
112 |
respond_to do |format| |
|
113 |
format.html { redirect_back_or_default home_path } |
|
114 |
format.api { render_api_ok } |
|
115 |
end |
|
116 |
return |
|
114 | 117 |
end |
115 | 118 |
end |
116 |
render :action => 'edit' |
|
119 |
respond_to do |format| |
|
120 |
format.html { render :action => 'edit' } |
|
121 |
format.api { render_validation_errors(@attachments) } |
|
122 |
end |
|
117 | 123 |
end |
118 | 124 | |
119 | 125 |
def destroy |
test/integration/api_test/attachments_test.rb | ||
---|---|---|
99 | 99 |
assert_nil Attachment.find_by_id(7) |
100 | 100 |
end |
101 | 101 | |
102 |
test "PATCH /attachments/issues/:id.json should return ok and updated Attachment" do |
|
103 |
token = json_upload('File content 1', credentials('jsmith')) |
|
104 |
|
|
105 |
payload = <<-JSON |
|
106 |
{ |
|
107 |
"issue": { |
|
108 |
"project_id": "1", |
|
109 |
"tracker_id": "1", |
|
110 |
"subject": "Issue with attachment", |
|
111 |
"uploads": [ |
|
112 |
{"token": "#{token}", "filename": "test1.txt", "description": "test1"} |
|
113 |
] |
|
114 |
} |
|
115 |
} |
|
116 |
JSON |
|
117 | ||
118 |
assert_difference 'Issue.count' do |
|
119 |
post '/issues.json', payload, {"CONTENT_TYPE" => 'application/json'}.merge(credentials('jsmith')) |
|
120 |
assert_response :created |
|
121 |
end |
|
122 |
|
|
123 |
issue = Issue.order('id DESC').first |
|
124 |
assert_equal 1, issue.attachments.count |
|
125 |
|
|
126 |
attachment = issue.attachments.first |
|
127 |
attachment.filename = "test1_updated.txt" |
|
128 |
attachment.description = "test1_updated" |
|
129 |
|
|
130 |
data = {:attachments => {attachment.id => {:filename => attachment.filename, :description => attachment.description}}} |
|
131 |
patch "/attachments/issues/#{issue.id}.json", data, credentials('jsmith') |
|
132 |
assert_response :ok |
|
133 |
|
|
134 |
updatedIssue = Issue.find(issue.id) |
|
135 |
updatedAttachment = updatedIssue.attachments.first; |
|
136 |
|
|
137 |
assert_equal "Issue with attachment", updatedIssue.subject |
|
138 |
assert_equal "test1_updated.txt", updatedAttachment.filename |
|
139 |
assert_equal "test1_updated", updatedAttachment.description |
|
140 |
end |
|
141 |
|
|
102 | 142 |
test "POST /uploads.xml should return the token" do |
103 | 143 |
set_tmp_attachments_directory |
104 | 144 |
assert_difference 'Attachment.count' do |
- « Previous
- 1
- 2
- Next »