Invalid URI
This commit is contained in:
parent
916b170e41
commit
95e5d7fb39
@ -118,7 +118,7 @@ module RedmineDmsf
|
||||
|
||||
# Characters that MATCH this regex will be replaced with dots, no more than one dot in a row.
|
||||
INVALID_CHARACTERS = /[\/\\\?":<>#%\*\[\]]/.freeze # = / \ ? " : < > # % * [ ]
|
||||
|
||||
|
||||
def self.create_project_name(p)
|
||||
use_project_names = Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names']
|
||||
if use_project_names
|
||||
|
||||
@ -178,7 +178,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest
|
||||
@project1.enable_module! :dmsf # Flag module enabled
|
||||
delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", nil, @jsmith
|
||||
assert_response 404
|
||||
p1name_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
p1name_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
delete "/dmsf/webdav/#{p1name_uri}/#{@folder6.title}", nil, @jsmith
|
||||
assert_response :success
|
||||
@folder6.reload
|
||||
@ -216,7 +216,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest
|
||||
@role.add_permission! :file_delete
|
||||
delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, @jsmith
|
||||
assert_response 404
|
||||
p1name_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
p1name_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
delete "/dmsf/webdav/#{p1name_uri}/#{@file1.name}", nil, @jsmith
|
||||
assert_response :success
|
||||
@file1.reload
|
||||
|
||||
@ -67,7 +67,7 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest
|
||||
|
||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
||||
if Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] == true
|
||||
project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
get '/dmsf/webdav', nil, @admin
|
||||
assert_response :success
|
||||
assert_no_match @project1.identifier, response.body
|
||||
@ -98,7 +98,7 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest
|
||||
|
||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
||||
if Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] == true
|
||||
project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
get "/dmsf/webdav/#{@project1.identifier}/test.txt", nil, @admin
|
||||
assert_response 404
|
||||
get "/dmsf/webdav/#{project1_uri}/test.txt", nil, @admin
|
||||
|
||||
@ -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 = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
@project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = false
|
||||
DmsfFile.storage_path = File.expand_path '../../../fixtures/files', __FILE__
|
||||
User.current = nil
|
||||
|
||||
@ -106,7 +106,7 @@ class DmsfWebdavMkcolTest < RedmineDmsf::Test::IntegrationTest
|
||||
assert_response :success
|
||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
||||
if Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] == true
|
||||
project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
xml_http_request :mkcol, "/dmsf/webdav/#{@project1.identifier}/test2", nil, @jsmith
|
||||
assert_response 404
|
||||
xml_http_request :mkcol, "/dmsf/webdav/#{project1_uri}/test3", nil, @jsmith
|
||||
|
||||
@ -140,7 +140,7 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
|
||||
file = DmsfFile.find_by_id 1
|
||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
||||
if Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] == true
|
||||
project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
new_name = "#{file.name}.moved"
|
||||
assert_difference 'file.dmsf_file_revisions.count', +1 do
|
||||
xml_http_request :move, "/dmsf/webdav/#{project1_uri}/#{file.name}", nil,
|
||||
@ -188,7 +188,7 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
|
||||
folder = DmsfFolder.find_by_id 1
|
||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
||||
if Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] == true
|
||||
project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
assert_kind_of DmsfFile, file
|
||||
assert_kind_of DmsfFolder, folder
|
||||
|
||||
|
||||
@ -156,7 +156,7 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest
|
||||
|
||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
||||
if Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] == true
|
||||
project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
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
|
||||
xml_http_request :options, "/dmsf/webdav/#{project1_uri}", nil, @admin.merge!({:HTTP_USER_AGENT => 'Other'})
|
||||
|
||||
@ -46,7 +46,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
|
||||
|
||||
# Temporarily enable project names to generate names for project1
|
||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
||||
@project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
@project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = false
|
||||
RedmineDmsf::Webdav::Cache.init_nullcache
|
||||
end
|
||||
@ -267,7 +267,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
|
||||
# Rename project1
|
||||
@project1.name = 'Online Cookbook'
|
||||
@project1.save!
|
||||
project1_new_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
project1_new_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
|
||||
# PROPSTATS for / is already cached, but a new PROPSTATS should be cached for project1
|
||||
assert_difference 'RedmineDmsf::Webdav::Cache.cache.instance_variable_get(:@data).count', +1 do
|
||||
|
||||
@ -102,7 +102,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
|
||||
assert file, 'Check for files existance'
|
||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
||||
if Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] == true
|
||||
project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", '1234', @admin.merge!({:content_type => :text})
|
||||
assert_response 409
|
||||
put "/dmsf/webdav/#{project1_uri}/test-1234.txt", '1234', @admin.merge!({:content_type => :text})
|
||||
@ -157,7 +157,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
|
||||
if Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] == true
|
||||
project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||
project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||
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})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user