WebDav move: moving a zero sized file does not create a new revision.
This commit is contained in:
parent
cea097de4a
commit
22b71a0e14
@ -336,7 +336,12 @@ module RedmineDmsf
|
||||
file.copy_to_filename(resource.project, f, resource.basename)
|
||||
Created
|
||||
else
|
||||
return InternalServerError unless file.move_to(resource.project, f)
|
||||
if (project == resource.project) && (file.last_revision.size == 0)
|
||||
# Moving a zero sized file within the same project, just update the dmsf_folder
|
||||
file.dmsf_folder = f
|
||||
else
|
||||
return InternalServerError unless file.move_to(resource.project, f)
|
||||
end
|
||||
|
||||
# Update Revision and names of file [We can link to old physical resource, as it's not changed]
|
||||
if file.last_revision
|
||||
|
||||
22
test/fixtures/dmsf_file_revisions.yml
vendored
22
test/fixtures/dmsf_file_revisions.yml
vendored
@ -139,4 +139,24 @@ dmsf_file_revisions_007:
|
||||
deleted_by_user_id: NULL
|
||||
user_id: 1
|
||||
dmsf_workflow_assigned_by: NULL
|
||||
dmsf_workflow_started_by: NULL
|
||||
dmsf_workflow_started_by: NULL
|
||||
|
||||
dmsf_file_revisions_008:
|
||||
id: 8
|
||||
dmsf_file_id: 10
|
||||
source_dmsf_file_revision_id: NULL
|
||||
name: "zero.txt"
|
||||
disk_filename: "zero.txt"
|
||||
size: 0
|
||||
mime_type: text/plain
|
||||
title: "Zero Size File"
|
||||
description: NULL
|
||||
workflow: NULL
|
||||
minor_version: 0
|
||||
major_version: 1
|
||||
comment: NULL
|
||||
deleted: 0
|
||||
deleted_by_user_id: NULL
|
||||
user_id: 1
|
||||
dmsf_workflow_assigned_by: NULL
|
||||
dmsf_workflow_started_by: NULL
|
||||
|
||||
10
test/fixtures/dmsf_files.yml
vendored
10
test/fixtures/dmsf_files.yml
vendored
@ -90,3 +90,13 @@ dmsf_files_009:
|
||||
notification: 0
|
||||
deleted: 0
|
||||
deleted_by_user_id: NULL
|
||||
|
||||
dmsf_files_010:
|
||||
id: 10
|
||||
container_id: 1
|
||||
container_type: "Project"
|
||||
dmsf_folder_id: NULL
|
||||
name: "zero.txt"
|
||||
notification: 0
|
||||
deleted: 0
|
||||
deleted_by_user_id: NULL
|
||||
|
||||
@ -131,6 +131,19 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
|
||||
end
|
||||
end
|
||||
|
||||
def test_move_zero_sized_to_new_filename
|
||||
file = DmsfFile.find_by_id 10
|
||||
|
||||
new_name = "#{file.name}.moved"
|
||||
assert_no_difference 'file.dmsf_file_revisions.count' do
|
||||
xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{file.name}", nil,
|
||||
@jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"})
|
||||
assert_response 201 # Created
|
||||
f = DmsfFile.find_file_by_name @project1, nil, "#{new_name}"
|
||||
assert f, "Moved file '#{new_name}' not found in project."
|
||||
end
|
||||
end
|
||||
|
||||
def test_move_to_new_folder
|
||||
file = DmsfFile.find_by_id 1
|
||||
folder = DmsfFolder.find_by_id 1
|
||||
@ -141,6 +154,23 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
|
||||
xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{file.name}", nil,
|
||||
@jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{folder.title}/#{file.name}"})
|
||||
assert_response 201 # Created
|
||||
file2 = DmsfFile.find_by_id 1
|
||||
assert_equal folder.id, file2.dmsf_folder_id
|
||||
end
|
||||
end
|
||||
|
||||
def test_move_zero_sized_to_new_folder
|
||||
file = DmsfFile.find_by_id 10
|
||||
folder = DmsfFolder.find_by_id 1
|
||||
assert_kind_of DmsfFile, file
|
||||
assert_kind_of DmsfFolder, folder
|
||||
|
||||
assert_no_difference 'file.dmsf_file_revisions.count' do
|
||||
xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{file.name}", nil,
|
||||
@jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{folder.title}/#{file.name}"})
|
||||
assert_response 201 # Created
|
||||
file2 = DmsfFile.find_by_id 10
|
||||
assert_equal folder.id, file2.dmsf_folder_id
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user