From 75f644970b62dd4aeea08c3153c2a1fd5f8e7924 Mon Sep 17 00:00:00 2001 From: "COLA@Redmine.local" Date: Wed, 15 Feb 2017 22:42:10 +0100 Subject: [PATCH] Renamed create_display_name to create_project_name, added PROJECT_NAME_FILTER. --- lib/redmine_dmsf/webdav/base_resource.rb | 2 +- lib/redmine_dmsf/webdav/project_resource.rb | 10 ++++++---- test/integration/webdav/dmsf_webdav_delete_test.rb | 4 ++-- test/integration/webdav/dmsf_webdav_get_test.rb | 4 ++-- test/integration/webdav/dmsf_webdav_head_test.rb | 2 +- test/integration/webdav/dmsf_webdav_mkcol_test.rb | 2 +- test/integration/webdav/dmsf_webdav_move_test.rb | 4 ++-- test/integration/webdav/dmsf_webdav_options_test.rb | 2 +- .../integration/webdav/dmsf_webdav_propfind_test.rb | 13 ++++++------- test/integration/webdav/dmsf_webdav_put_test.rb | 4 ++-- 10 files changed, 24 insertions(+), 23 deletions(-) diff --git a/lib/redmine_dmsf/webdav/base_resource.rb b/lib/redmine_dmsf/webdav/base_resource.rb index d5ce211b..fbd67438 100644 --- a/lib/redmine_dmsf/webdav/base_resource.rb +++ b/lib/redmine_dmsf/webdav/base_resource.rb @@ -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] == '/' diff --git a/lib/redmine_dmsf/webdav/project_resource.rb b/lib/redmine_dmsf/webdav/project_resource.rb index ec495e11..d1b7875c 100644 --- a/lib/redmine_dmsf/webdav/project_resource.rb +++ b/lib/redmine_dmsf/webdav/project_resource.rb @@ -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 diff --git a/test/integration/webdav/dmsf_webdav_delete_test.rb b/test/integration/webdav/dmsf_webdav_delete_test.rb index c3aee556..e4274d90 100644 --- a/test/integration/webdav/dmsf_webdav_delete_test.rb +++ b/test/integration/webdav/dmsf_webdav_delete_test.rb @@ -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 diff --git a/test/integration/webdav/dmsf_webdav_get_test.rb b/test/integration/webdav/dmsf_webdav_get_test.rb index 11217b17..a06b3195 100644 --- a/test/integration/webdav/dmsf_webdav_get_test.rb +++ b/test/integration/webdav/dmsf_webdav_get_test.rb @@ -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 diff --git a/test/integration/webdav/dmsf_webdav_head_test.rb b/test/integration/webdav/dmsf_webdav_head_test.rb index 211911af..5f38370b 100644 --- a/test/integration/webdav/dmsf_webdav_head_test.rb +++ b/test/integration/webdav/dmsf_webdav_head_test.rb @@ -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 diff --git a/test/integration/webdav/dmsf_webdav_mkcol_test.rb b/test/integration/webdav/dmsf_webdav_mkcol_test.rb index ebe5751d..bdaf4a67 100644 --- a/test/integration/webdav/dmsf_webdav_mkcol_test.rb +++ b/test/integration/webdav/dmsf_webdav_mkcol_test.rb @@ -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 diff --git a/test/integration/webdav/dmsf_webdav_move_test.rb b/test/integration/webdav/dmsf_webdav_move_test.rb index aeaf4678..96105fd7 100644 --- a/test/integration/webdav/dmsf_webdav_move_test.rb +++ b/test/integration/webdav/dmsf_webdav_move_test.rb @@ -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 diff --git a/test/integration/webdav/dmsf_webdav_options_test.rb b/test/integration/webdav/dmsf_webdav_options_test.rb index ae732d97..f213b495 100644 --- a/test/integration/webdav/dmsf_webdav_options_test.rb +++ b/test/integration/webdav/dmsf_webdav_options_test.rb @@ -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 diff --git a/test/integration/webdav/dmsf_webdav_propfind_test.rb b/test/integration/webdav/dmsf_webdav_propfind_test.rb index 54f51779..9eb86771 100644 --- a/test/integration/webdav/dmsf_webdav_propfind_test.rb +++ b/test/integration/webdav/dmsf_webdav_propfind_test.rb @@ -125,8 +125,8 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest assert_no_match "#{@project1.identifier}", 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 "http://www.example.com:80/dmsf/webdav/#{p1name_uri}/", response.body assert_match "#{p1name}", 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 "#{@file10.name}", response.body end - def test_propfind_depth0_on_project1_for_admin_with_cache RedmineDmsf::Webdav::Cache.init_testcache diff --git a/test/integration/webdav/dmsf_webdav_put_test.rb b/test/integration/webdav/dmsf_webdav_put_test.rb index b111debb..eb5b28fe 100644 --- a/test/integration/webdav/dmsf_webdav_put_test.rb +++ b/test/integration/webdav/dmsf_webdav_put_test.rb @@ -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})