diff --git a/test/integration/dmsf_webdav_put_test.rb b/test/integration/dmsf_webdav_put_test.rb index d826e897..23555eaf 100644 --- a/test/integration/dmsf_webdav_put_test.rb +++ b/test/integration/dmsf_webdav_put_test.rb @@ -224,4 +224,47 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest end end + def test_put_non_versioned_files + @project1.enable_module! :dmsf + @role.add_permission! :view_dmsf_folders + @role.add_permission! :file_manipulation + + put "/dmsf/webdav/#{@project1.identifier}/file1.tmp", '1234', @admin.merge!({:content_type => :text}) + assert_response :success + file1 = DmsfFile.find_file_by_name @project1, nil, 'file1.tmp' + assert_difference 'file1.dmsf_file_revisions.count', 0 do + put "/dmsf/webdav/#{@project1.identifier}/file1.tmp", '5678', @admin.merge!({:content_type => :text}) + assert_response :success # 201 - Created + end + assert_difference 'file1.dmsf_file_revisions.count', 0 do + put "/dmsf/webdav/#{@project1.identifier}/file1.tmp", '9ABC', @admin.merge!({:content_type => :text}) + assert_response :success # 201 - Created + end + + put "/dmsf/webdav/#{@project1.identifier}/~$file2.txt", '1234', @admin.merge!({:content_type => :text}) + assert_response :success + file2 = DmsfFile.find_file_by_name @project1, nil, '~$file2.txt' + assert_difference 'file1.dmsf_file_revisions.count', 0 do + put "/dmsf/webdav/#{@project1.identifier}/~$file2.txt", '5678', @admin.merge!({:content_type => :text}) + assert_response :success # 201 - Created + end + assert_difference 'file1.dmsf_file_revisions.count', 0 do + put "/dmsf/webdav/#{@project1.identifier}/~$file2.txt", '9ABC', @admin.merge!({:content_type => :text}) + assert_response :success # 201 - Created + end + + Setting.plugin_redmine_dmsf['dmsf_webdav_disable_versioning'] = '.dump$' + put "/dmsf/webdav/#{@project1.identifier}/file3.dump", '1234', @admin.merge!({:content_type => :text}) + assert_response :success + file2 = DmsfFile.find_file_by_name @project1, nil, 'file3.dump' + assert_difference 'file1.dmsf_file_revisions.count', 0 do + put "/dmsf/webdav/#{@project1.identifier}/file3.dump", '5678', @admin.merge!({:content_type => :text}) + assert_response :success # 201 - Created + end + assert_difference 'file1.dmsf_file_revisions.count', 0 do + put "/dmsf/webdav/#{@project1.identifier}/file3.dump", '9ABC', @admin.merge!({:content_type => :text}) + assert_response :success # 201 - Created + end +end + end \ No newline at end of file