Renamed create_display_name to create_project_name, added PROJECT_NAME_FILTER.

This commit is contained in:
COLA@Redmine.local 2017-02-15 22:42:10 +01:00
parent f4ca9a6273
commit 75f644970b
10 changed files with 24 additions and 23 deletions

View File

@ -95,7 +95,7 @@ module RedmineDmsf
end
def child_project(p)
project_display_name = ProjectResource.create_display_name(p)
project_display_name = ProjectResource.create_project_name(p)
new_public = public_path.dup
new_public = new_public + '/' unless new_public[-1,1] == '/'

View File

@ -72,7 +72,7 @@ module RedmineDmsf
end
def name
ProjectResource.create_display_name(project)
ProjectResource.create_project_name(project)
end
def long_name
@ -109,15 +109,17 @@ module RedmineDmsf
self.project.id if self.project
end
def self.create_display_name(p)
# Characters that MATCH this regex will be replaced by '_'
PROJECT_NAME_FILTER = /\W/
def self.create_project_name(p)
use_project_names = Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names']
if use_project_names
"#{p.name.gsub(/\W/, "_")} [#{p.id}]" unless p.nil?
"#{p.name.gsub(PROJECT_NAME_FILTER, "_")} [#{p.id}]" unless p.nil?
else
p.identifier unless p.nil?
end
end
end
end
end

View File

@ -179,7 +179,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest
delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", nil, @jsmith
assert_response 404
p1name = RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1)
p1name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
p1name_uri = URI.encode(p1name, /\W/)
delete "/dmsf/webdav/#{p1name_uri}/#{@folder6.title}", nil, @jsmith
assert_response :success
@ -218,7 +218,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest
delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, @jsmith
assert_response 404
p1name = RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1)
p1name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
p1name_uri = URI.encode(p1name, /\W/)
delete "/dmsf/webdav/#{p1name_uri}/#{@file1.name}", nil, @jsmith

View File

@ -66,7 +66,7 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest
assert !response.body.match(@project1.identifier).nil?, "Expected to find project #{@project1.identifier} in return data"
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
project1_uri = RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1)
project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
get '/dmsf/webdav', nil, @admin
assert_response :success
@ -96,7 +96,7 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest
assert_response :success
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1), /\W/)
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1), /\W/)
get "/dmsf/webdav/#{@project1.identifier}/test.txt", nil, @admin
assert_response 404

View File

@ -35,7 +35,7 @@ class DmsfWebdavHeadTest < RedmineDmsf::Test::IntegrationTest
Setting.plugin_redmine_dmsf['dmsf_webdav_strategy'] = 'WEBDAV_READ_WRITE'
# Temporarily enable project names
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
@project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1), /\W/)
@project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1), /\W/)
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = false
DmsfFile.storage_path = File.expand_path '../../../fixtures/files', __FILE__
User.current = nil

View File

@ -105,7 +105,7 @@ class DmsfWebdavMkcolTest < RedmineDmsf::Test::IntegrationTest
assert_response :success
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1), /\W/)
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1), /\W/)
xml_http_request :mkcol, "/dmsf/webdav/#{@project1.identifier}/test2", nil, @jsmith
assert_response 404

View File

@ -135,7 +135,7 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
def test_move_to_new_filename_with_project_names
file = DmsfFile.find_by_id 1
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1), /\W/)
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1), /\W/)
new_name = "#{file.name}.moved"
assert_difference 'file.dmsf_file_revisions.count', +1 do
@ -179,7 +179,7 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
file = DmsfFile.find_by_id 1
folder = DmsfFolder.find_by_id 1
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1), /\W/)
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1), /\W/)
assert_kind_of DmsfFile, file
assert_kind_of DmsfFolder, folder

View File

@ -149,7 +149,7 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest
assert_response :success
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1), /\W/)
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1), /\W/)
xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}", nil, @admin.merge!({:HTTP_USER_AGENT => "Other"})
assert_response 404

View File

@ -125,8 +125,8 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
assert_no_match "<D:displayname>#{@project1.identifier}</D:displayname>", response.body
# but the project name should match
p1name = RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1)
p1name_uri = URI.encode(p1name, /\W/)
p1name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
p1name_uri = URI.encode(p1name, RedmineDmsf::Webdav::ProjectResource::PROJECT_NAME_FILTER)
assert_match "<D:href>http://www.example.com:80/dmsf/webdav/#{p1name_uri}/</D:href>", response.body
assert_match "<D:displayname>#{p1name}</D:displayname>", response.body
end
@ -167,8 +167,8 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
@admin.merge!({:HTTP_DEPTH => "0"})
assert_response 404
p1name = RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1)
p1name_uri = URI.encode(p1name, /\W/)
p1name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
p1name_uri = URI.encode(p1name, RedmineDmsf::Webdav::ProjectResource::PROJECT_NAME_FILTER)
xml_http_request :propfind, "/dmsf/webdav/#{p1name_uri}", nil,
@admin.merge!({:HTTP_DEPTH => "0"})
@ -212,8 +212,8 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
@admin.merge!({:HTTP_DEPTH => "1"})
assert_response 404
p1name = RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1)
p1name_uri = URI.encode(p1name, /\W/)
p1name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
p1name_uri = URI.encode(p1name, RedmineDmsf::Webdav::ProjectResource::PROJECT_NAME_FILTER)
xml_http_request :propfind, "/dmsf/webdav/#{p1name_uri}", nil,
@admin.merge!({:HTTP_DEPTH => "1"})
@ -248,7 +248,6 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
assert_match "<D:displayname>#{@file10.name}</D:displayname>", response.body
end
def test_propfind_depth0_on_project1_for_admin_with_cache
RedmineDmsf::Webdav::Cache.init_testcache

View File

@ -101,7 +101,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
assert file, 'Check for files existance'
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1), /\W/)
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1), /\W/)
put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", '1234', @admin.merge!({:content_type => :text})
assert_response 409
@ -154,7 +154,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
assert file, 'File test-1234 was not found in projects dmsf folder.'
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_display_name(@project1), /\W/)
project1_uri = URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1), /\W/)
put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", '1234', @jsmith.merge!({:content_type => :text})
assert_response 409
put "/dmsf/webdav/#{project1_uri}/test-1234.txt", '1234', @jsmith.merge!({:content_type => :text})