#1207 Plugin's settings
This commit is contained in:
parent
dc447545be
commit
7414e5ee31
@ -259,31 +259,35 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
|
|||||||
|
|
||||||
def test_email_entries_email_from_forbidden
|
def test_email_entries_email_from_forbidden
|
||||||
@role_manager.remove_permission! :email_documents
|
@role_manager.remove_permission! :email_documents
|
||||||
Setting.plugin_redmine_dmsf['dmsf_documents_email_from'] = 'karel.picman@kontron.com'
|
with_settings plugin_redmine_dmsf: {'dmsf_documents_email_from' => 'karel.picman@kontron.com'} do
|
||||||
get :entries_operation, params: {id: @project1, email_entries: 'Email', ids: ["file-#{@file1.id}"]}
|
get :entries_operation, params: {id: @project1, email_entries: 'Email', ids: ["file-#{@file1.id}"]}
|
||||||
assert_response :forbidden
|
assert_response :forbidden
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_email_entries_email_from
|
def test_email_entries_email_from
|
||||||
Setting.plugin_redmine_dmsf['dmsf_documents_email_from'] = 'karel.picman@kontron.com'
|
with_settings plugin_redmine_dmsf: {'dmsf_documents_email_from' => 'karel.picman@kontron.com'} do
|
||||||
get :entries_operation, params: { id: @project1, email_entries: 'Email', ids: ["file-#{@file1.id}"]}
|
get :entries_operation, params: { id: @project1, email_entries: 'Email', ids: ["file-#{@file1.id}"]}
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_select "input:match('value', ?)", Setting.plugin_redmine_dmsf['dmsf_documents_email_from']
|
assert_select "input:match('value', ?)", Setting.plugin_redmine_dmsf['dmsf_documents_email_from']
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_email_entries_reply_to
|
def test_email_entries_reply_to
|
||||||
Setting.plugin_redmine_dmsf['dmsf_documents_email_reply_to'] = 'karel.picman@kontron.com'
|
with_settings plugin_redmine_dmsf: {'dmsf_documents_email_reply_to' => 'karel.picman@kontron.com'} do
|
||||||
get :entries_operation, params: { id: @project1, email_entries: 'Email', ids: ["file-#{@file1.id}"]}
|
get :entries_operation, params: { id: @project1, email_entries: 'Email', ids: ["file-#{@file1.id}"]}
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_select "input:match('value', ?)", Setting.plugin_redmine_dmsf['dmsf_documents_email_reply_to']
|
assert_select "input:match('value', ?)", Setting.plugin_redmine_dmsf['dmsf_documents_email_reply_to']
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_email_entries_links_only
|
def test_email_entries_links_only
|
||||||
Setting.plugin_redmine_dmsf['dmsf_documents_email_links_only'] = '1'
|
with_settings plugin_redmine_dmsf: {'dmsf_documents_email_links_only' => '1'} do
|
||||||
get :entries_operation, params: { id: @project1, email_entries: 'Email', ids: ["file-#{@file1.id}"]}
|
get :entries_operation, params: { id: @project1, email_entries: 'Email', ids: ["file-#{@file1.id}"]}
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_select "input[id=email_links_only][value=1]"
|
assert_select "input[id=email_links_only][value=1]"
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_entries_email
|
def test_entries_email
|
||||||
zip_file = Tempfile.new('test', DmsfHelper::temp_dir)
|
zip_file = Tempfile.new('test', DmsfHelper::temp_dir)
|
||||||
@ -347,13 +351,13 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_show_with_sub_projects
|
def test_show_with_sub_projects
|
||||||
Setting.clear_cache
|
with_settings plugin_redmine_dmsf: {'dmsf_projects_as_subfolders' => '1'} do
|
||||||
Setting.plugin_redmine_dmsf['dmsf_projects_as_subfolders'] = '1'
|
|
||||||
get :show, params: { id: @project1.id }
|
get :show, params: { id: @project1.id }
|
||||||
assert_response :success
|
assert_response :success
|
||||||
# @project3 is as a sub-folder
|
# @project3 is as a sub-folder
|
||||||
assert_select "tr##{@project3.id}pspan", count: 1
|
assert_select "tr##{@project3.id}pspan", count: 1
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_show_without_sub_projects
|
def test_show_without_sub_projects
|
||||||
get :show, params: { id: @project1.id }
|
get :show, params: { id: @project1.id }
|
||||||
|
|||||||
@ -29,8 +29,9 @@ class DmsfHelperTest < RedmineDmsf::Test::HelperTest
|
|||||||
assert_equal "#{base_url}/", webdav_url(nil, nil)
|
assert_equal "#{base_url}/", webdav_url(nil, nil)
|
||||||
assert_equal "#{base_url}/ecookbook/", webdav_url(@project1, nil)
|
assert_equal "#{base_url}/ecookbook/", webdav_url(@project1, nil)
|
||||||
assert_equal "#{base_url}/ecookbook/folder1/", webdav_url(@project1, @folder1)
|
assert_equal "#{base_url}/ecookbook/folder1/", webdav_url(@project1, @folder1)
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = '1'
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1'} do
|
||||||
assert_equal "#{base_url}/eCookbook 1/", webdav_url(@project1, nil)
|
assert_equal "#{base_url}/eCookbook 1/", webdav_url(@project1, nil)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@ -53,6 +53,30 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert_select 'dmsf > dmsf_nodes > node > type', text: 'folder'
|
assert_select 'dmsf > dmsf_nodes > node > type', text: 'folder'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_list_folder_with_sub_projects
|
||||||
|
with_settings plugin_redmine_dmsf: {'dmsf_projects_as_subfolders' => '1'} do
|
||||||
|
#curl -v -H "Content-Type: application/xml" -X GET -u ${1}:${2} http://localhost:3000/dmsf/files/17216.xml
|
||||||
|
get "/projects/#{@project1.identifier}/dmsf.xml?key=#{@token.value}"
|
||||||
|
assert_response :success
|
||||||
|
assert_equal 'application/xml', @response.content_type
|
||||||
|
# <?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
# <dmsf>
|
||||||
|
# <dmsf_nodes total_count="9" type="array">
|
||||||
|
# <node>
|
||||||
|
# <id>3</id>
|
||||||
|
# <title>eCookbook Subproject 1</title>
|
||||||
|
# <type>project</type>
|
||||||
|
# </node>
|
||||||
|
# ...
|
||||||
|
# </dmsf_nodes>
|
||||||
|
# </dmsf>
|
||||||
|
# @project3 is as a sub-folder
|
||||||
|
assert_select 'dmsf > dmsf_nodes > node > id', text: @project3.id.to_s
|
||||||
|
assert_select 'dmsf > dmsf_nodes > node > title', text: @project3.name
|
||||||
|
assert_select 'dmsf > dmsf_nodes > node > type', text: 'project'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_list_folder_limit_and_offset
|
def test_list_folder_limit_and_offset
|
||||||
#curl -v -H "Content-Type: application/xml" -X GET -u ${1}:${2} "http://localhost:3000/dmsf/files/17216.xml?limit=1&offset=1"
|
#curl -v -H "Content-Type: application/xml" -X GET -u ${1}:${2} "http://localhost:3000/dmsf/files/17216.xml?limit=1&offset=1"
|
||||||
get "/projects/#{@project1.identifier}/dmsf.xml?key=#{@token.value}&limit=1&offset=2"
|
get "/projects/#{@project1.identifier}/dmsf.xml?key=#{@token.value}&limit=1&offset=2"
|
||||||
|
|||||||
@ -46,10 +46,11 @@ class DmsfWebdavCustomMiddlewareTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_webdav_not_enabled
|
def test_webdav_not_enabled
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav'] = nil
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav' => nil} do
|
||||||
process :options, '/dmsf/webdav'
|
process :options, '/dmsf/webdav'
|
||||||
assert_response :not_found
|
assert_response :not_found
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_webdav_enabled
|
def test_webdav_enabled
|
||||||
process :options, '/dmsf/webdav'
|
process :options, '/dmsf/webdav'
|
||||||
|
|||||||
@ -69,9 +69,11 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_delete_when_ro
|
def test_delete_when_ro
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_strategy'] = 'WEBDAV_READ_ONLY'
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_strategy' => 'WEBDAV_READ_ONLY', 'dmsf_webdav' => '1'} do
|
||||||
|
puts Setting.plugin_redmine_dmsf['dmsf_webdav_strategy']
|
||||||
delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @admin
|
delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @admin
|
||||||
assert_response :bad_gateway # Item does not exist, as project is not enabled.
|
assert_response :bad_gateway # WebDAV is read only
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_unlocked_file
|
def test_unlocked_file
|
||||||
@ -128,7 +130,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_folder_delete_by_user_with_project_names
|
def test_folder_delete_by_user_with_project_names
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", params: nil, headers: @jsmith
|
delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", params: nil, headers: @jsmith
|
||||||
assert_response :conflict
|
assert_response :conflict
|
||||||
p1name_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
p1name_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||||
@ -137,6 +139,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
@folder6.reload
|
@folder6.reload
|
||||||
assert @folder6.deleted?, "Folder #{@folder6.title} is not expected to exist"
|
assert @folder6.deleted?, "Folder #{@folder6.title} is not expected to exist"
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_file_delete_by_administrator
|
def test_file_delete_by_administrator
|
||||||
delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @admin
|
delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @admin
|
||||||
@ -153,7 +156,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_file_delete_by_user_with_project_names
|
def test_file_delete_by_user_with_project_names
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = '1'
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @jsmith
|
delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @jsmith
|
||||||
assert_response :conflict
|
assert_response :conflict
|
||||||
p1name_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
p1name_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||||
@ -162,6 +165,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
@file1.reload
|
@file1.reload
|
||||||
assert @file1.deleted?, "File #{@file1.name} is not expected to exist"
|
assert @file1.deleted?, "File #{@file1.name} is not expected to exist"
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_folder_delete_fragments
|
def test_folder_delete_fragments
|
||||||
delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}/#frament=HTTP/1.1", params: nil, headers: @jsmith
|
delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}/#frament=HTTP/1.1", params: nil, headers: @jsmith
|
||||||
|
|||||||
@ -53,13 +53,14 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert_response :success
|
assert_response :success
|
||||||
assert !response.body.match(@project1.identifier).nil?,
|
assert !response.body.match(@project1.identifier).nil?,
|
||||||
"Expected to find project #{@project1.identifier} in return data"
|
"Expected to find project #{@project1.identifier} in return data"
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
project1_uri = Addressable::URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
project1_uri = Addressable::URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||||
get '/dmsf/webdav', params: nil, headers: @admin
|
get '/dmsf/webdav', params: nil, headers: @admin
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_no_match @project1.identifier, response.body
|
assert_no_match @project1.identifier, response.body
|
||||||
assert_match project1_uri, response.body
|
assert_match project1_uri, response.body
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_should_not_list_non_dmsf_enabled_project
|
def test_should_not_list_non_dmsf_enabled_project
|
||||||
@project2.disable_module! :dmsf
|
@project2.disable_module! :dmsf
|
||||||
@ -113,13 +114,14 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
def test_download_file_from_dmsf_enabled_project
|
def test_download_file_from_dmsf_enabled_project
|
||||||
get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin
|
get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin
|
||||||
assert_response :success
|
assert_response :success
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
project1_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
project1_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||||
get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin
|
get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin
|
||||||
assert_response :conflict
|
assert_response :conflict
|
||||||
get "/dmsf/webdav/#{project1_uri}/test.txt", params: nil, headers: @admin
|
get "/dmsf/webdav/#{project1_uri}/test.txt", params: nil, headers: @admin
|
||||||
assert_response :success
|
assert_response :success
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_should_list_dmsf_contents_within_project
|
def test_should_list_dmsf_contents_within_project
|
||||||
get "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin
|
get "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin
|
||||||
|
|||||||
@ -36,12 +36,13 @@ class DmsfWebdavHeadTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
head "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin
|
head "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin
|
||||||
assert_response :success
|
assert_response :success
|
||||||
check_headers_exist
|
check_headers_exist
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = '1'
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
head "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin
|
head "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin
|
||||||
assert_response :not_found
|
assert_response :not_found
|
||||||
head "/dmsf/webdav/#{@project1_uri}", params: nil, headers: @admin
|
head "/dmsf/webdav/#{@project1_uri}", params: nil, headers: @admin
|
||||||
assert_response :success
|
assert_response :success
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Note:
|
# Note:
|
||||||
# At present we use Rack to serve the file, this makes life easy however it removes the Etag
|
# At present we use Rack to serve the file, this makes life easy however it removes the Etag
|
||||||
@ -52,12 +53,13 @@ class DmsfWebdavHeadTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
head "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin
|
head "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin
|
||||||
assert_response :success
|
assert_response :success
|
||||||
check_headers_exist
|
check_headers_exist
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = '1'
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
head "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin
|
head "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin
|
||||||
assert_response :conflict
|
assert_response :conflict
|
||||||
head "/dmsf/webdav/#{@project1_uri}/test.txt", params: nil, headers: @admin
|
head "/dmsf/webdav/#{@project1_uri}/test.txt", params: nil, headers: @admin
|
||||||
assert_response :success
|
assert_response :success
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_head_responds_to_file_anonymous_other_user_agent
|
def test_head_responds_to_file_anonymous_other_user_agent
|
||||||
head "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: { HTTP_USER_AGENT: 'Other' }
|
head "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: { HTTP_USER_AGENT: 'Other' }
|
||||||
|
|||||||
@ -62,13 +62,14 @@ class DmsfWebdavMkcolTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
def test_should_create_folder_for_non_admin_user_with_rights
|
def test_should_create_folder_for_non_admin_user_with_rights
|
||||||
process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test1", params: nil, headers: @jsmith
|
process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test1", params: nil, headers: @jsmith
|
||||||
assert_response :success
|
assert_response :success
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
project1_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
project1_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||||
process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test2", params: nil, headers: @jsmith
|
process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test2", params: nil, headers: @jsmith
|
||||||
assert_response :conflict
|
assert_response :conflict
|
||||||
process :mkcol, "/dmsf/webdav/#{project1_uri}/test3", params: nil, headers: @jsmith
|
process :mkcol, "/dmsf/webdav/#{project1_uri}/test3", params: nil, headers: @jsmith
|
||||||
assert_response :success # Created
|
assert_response :success # Created
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_create_folder_in_subproject
|
def test_create_folder_in_subproject
|
||||||
process :mkcol, "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/test1", params: nil,
|
process :mkcol, "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/test1", params: nil,
|
||||||
|
|||||||
@ -107,7 +107,7 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_move_to_new_filename_with_project_names
|
def test_move_to_new_filename_with_project_names
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
project1_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
project1_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||||
new_name = "#{@file1.name}.moved"
|
new_name = "#{@file1.name}.moved"
|
||||||
assert_difference '@file1.dmsf_file_revisions.count', +1 do
|
assert_difference '@file1.dmsf_file_revisions.count', +1 do
|
||||||
@ -118,6 +118,7 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert f, "Moved file '#{new_name}' not found in project."
|
assert f, "Moved file '#{new_name}' not found in project."
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_move_zero_sized_to_new_filename
|
def test_move_zero_sized_to_new_filename
|
||||||
new_name = "#{@file10.name}.moved"
|
new_name = "#{@file10.name}.moved"
|
||||||
@ -142,7 +143,7 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_move_to_new_folder_with_project_names
|
def test_move_to_new_folder_with_project_names
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
project1_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
project1_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||||
assert_difference '@file1.dmsf_file_revisions.count', +1 do
|
assert_difference '@file1.dmsf_file_revisions.count', +1 do
|
||||||
process :move, "/dmsf/webdav/#{project1_uri}/#{@file1.name}", params: nil,
|
process :move, "/dmsf/webdav/#{project1_uri}/#{@file1.name}", params: nil,
|
||||||
@ -153,6 +154,7 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert_equal @folder1.id, @file1.dmsf_folder_id
|
assert_equal @folder1.id, @file1.dmsf_folder_id
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_move_zero_sized_to_new_folder
|
def test_move_zero_sized_to_new_folder
|
||||||
assert_no_difference '@file10.dmsf_file_revisions.count' do
|
assert_no_difference '@file10.dmsf_file_revisions.count' do
|
||||||
|
|||||||
@ -32,13 +32,14 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_options_returns_expected_allow_header_for_ro
|
def test_options_returns_expected_allow_header_for_ro
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_strategy'] = 'WEBDAV_READ_ONLY'
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_strategy' => 'WEBDAV_READ_ONLY', 'dmsf_webdav' => '1'} do
|
||||||
process :options, '/dmsf/webdav'
|
process :options, '/dmsf/webdav'
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty'
|
assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty'
|
||||||
assert response.headers['Allow'] , 'Allow header is empty or does not exist'
|
assert response.headers['Allow'] , 'Allow header is empty or does not exist'
|
||||||
assert_equal response.headers['Allow'], 'OPTIONS,HEAD,GET,PROPFIND'
|
assert_equal response.headers['Allow'], 'OPTIONS,HEAD,GET,PROPFIND'
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_options_returns_expected_allow_header_for_rw
|
def test_options_returns_expected_allow_header_for_rw
|
||||||
process :options, '/dmsf/webdav'
|
process :options, '/dmsf/webdav'
|
||||||
|
|||||||
@ -54,7 +54,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_propfind_depth1_on_root_for_admin_with_project_names
|
def test_propfind_depth1_on_root_for_admin_with_project_names
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
process :propfind, '/dmsf/webdav/', params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'})
|
process :propfind, '/dmsf/webdav/', params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'})
|
||||||
assert_response :multi_status
|
assert_response :multi_status
|
||||||
assert response.body.include?('<d:href>http://www.example.com:80/dmsf/webdav/</d:href>')
|
assert response.body.include?('<d:href>http://www.example.com:80/dmsf/webdav/</d:href>')
|
||||||
@ -66,6 +66,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert response.body.include?("<d:href>http://www.example.com:80/dmsf/webdav/#{@project1_uri}/</d:href>")
|
assert response.body.include?("<d:href>http://www.example.com:80/dmsf/webdav/#{@project1_uri}/</d:href>")
|
||||||
assert response.body.include?("<d:displayname>#{@project1_name}</d:displayname>")
|
assert response.body.include?("<d:displayname>#{@project1_name}</d:displayname>")
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_propfind_depth0_on_project1_for_non_member
|
def test_propfind_depth0_on_project1_for_non_member
|
||||||
process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @someone.merge!({ HTTP_DEPTH: '0' })
|
process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @someone.merge!({ HTTP_DEPTH: '0' })
|
||||||
@ -92,7 +93,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_propfind_depth0_on_project1_for_admin_with_project_names
|
def test_propfind_depth0_on_project1_for_admin_with_project_names
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '0' })
|
process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '0' })
|
||||||
assert_response :not_found
|
assert_response :not_found
|
||||||
process :propfind, "/dmsf/webdav/#{@project1_uri}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '0' })
|
process :propfind, "/dmsf/webdav/#{@project1_uri}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '0' })
|
||||||
@ -100,6 +101,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert response.body.include?("<d:href>http://www.example.com:80/dmsf/webdav/#{@project1_uri}/</d:href>")
|
assert response.body.include?("<d:href>http://www.example.com:80/dmsf/webdav/#{@project1_uri}/</d:href>")
|
||||||
assert response.body.include?("<d:displayname>#{@project1_name}</d:displayname>")
|
assert response.body.include?("<d:displayname>#{@project1_name}</d:displayname>")
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_propfind_depth1_on_project1_for_admin
|
def test_propfind_depth1_on_project1_for_admin
|
||||||
process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1' })
|
process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1' })
|
||||||
@ -122,7 +124,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_propfind_depth1_on_project1_for_admin_with_project_names
|
def test_propfind_depth1_on_project1_for_admin_with_project_names
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'})
|
process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'})
|
||||||
assert_response :not_found
|
assert_response :not_found
|
||||||
process :propfind, "/dmsf/webdav/#{@project1_uri}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'})
|
process :propfind, "/dmsf/webdav/#{@project1_uri}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'})
|
||||||
@ -142,9 +144,10 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert response.body.include?("<d:href>http://www.example.com:80/dmsf/webdav/#{@project1_uri}/#{@file10.name}</d:href>")
|
assert response.body.include?("<d:href>http://www.example.com:80/dmsf/webdav/#{@project1_uri}/#{@file10.name}</d:href>")
|
||||||
assert response.body.include?("<d:displayname>#{@file10.name}</d:displayname>")
|
assert response.body.include?("<d:displayname>#{@file10.name}</d:displayname>")
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_propfind_depth1_on_root_for_admin
|
def test_propfind_depth1_on_root_for_admin
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
project1_new_name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
project1_new_name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||||
project1_new_uri = ERB::Util.url_encode(project1_new_name)
|
project1_new_uri = ERB::Util.url_encode(project1_new_name)
|
||||||
process :propfind, "/dmsf/webdav/#{project1_new_uri}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'})
|
process :propfind, "/dmsf/webdav/#{project1_new_uri}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'})
|
||||||
@ -152,6 +155,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert response.body.include?("<d:href>http://www.example.com:80/dmsf/webdav/#{project1_new_uri}/</d:href>")
|
assert response.body.include?("<d:href>http://www.example.com:80/dmsf/webdav/#{project1_new_uri}/</d:href>")
|
||||||
assert response.body.include?("<d:displayname>#{project1_new_name}</d:displayname>")
|
assert response.body.include?("<d:displayname>#{project1_new_name}</d:displayname>")
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_propfind_for_subproject
|
def test_propfind_for_subproject
|
||||||
process :propfind, "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}", params: nil,
|
process :propfind, "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}", params: nil,
|
||||||
|
|||||||
@ -74,7 +74,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
# Lets check for our file
|
# Lets check for our file
|
||||||
file = DmsfFile.find_file_by_name @project1, nil, 'test-1234.txt'
|
file = DmsfFile.find_file_by_name @project1, nil, 'test-1234.txt'
|
||||||
assert file, 'Check for files existance'
|
assert file, 'Check for files existance'
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
project1_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
project1_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
|
||||||
put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", params: '1234',
|
put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", params: '1234',
|
||||||
headers: @admin.merge!({ content_type: :text })
|
headers: @admin.merge!({ content_type: :text })
|
||||||
@ -82,6 +82,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
put "/dmsf/webdav/#{project1_uri}/test-1234.txt", params: '1234', headers: @admin.merge!({ content_type: :text })
|
put "/dmsf/webdav/#{project1_uri}/test-1234.txt", params: '1234', headers: @admin.merge!({ content_type: :text })
|
||||||
assert_response :created
|
assert_response :created
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_put_failed_as_jsmith_on_non_dmsf_enabled_project
|
def test_put_failed_as_jsmith_on_non_dmsf_enabled_project
|
||||||
@project2.disable_module! :dmsf
|
@project2.disable_module! :dmsf
|
||||||
@ -110,7 +111,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert file.last_revision
|
assert file.last_revision
|
||||||
assert_equal 'SHA256', file.last_revision.digest_type
|
assert_equal 'SHA256', file.last_revision.digest_type
|
||||||
|
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1', 'dmsf_webdav' => '1'} do
|
||||||
put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", params: '1234',
|
put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", params: '1234',
|
||||||
headers: @jsmith.merge!({ content_type: :text })
|
headers: @jsmith.merge!({ content_type: :text })
|
||||||
assert_response :conflict
|
assert_response :conflict
|
||||||
@ -119,6 +120,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
put "/dmsf/webdav/#{project1_uri}/test-1234.txt", params: '1234', headers: @jsmith.merge!({ content_type: :text })
|
put "/dmsf/webdav/#{project1_uri}/test-1234.txt", params: '1234', headers: @jsmith.merge!({ content_type: :text })
|
||||||
assert_response :created # Now we have permissions
|
assert_response :created # Now we have permissions
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_put_writes_revision_successfully_for_unlocked_file
|
def test_put_writes_revision_successfully_for_unlocked_file
|
||||||
file = DmsfFile.find_file_by_name @project1, nil, 'test.txt'
|
file = DmsfFile.find_file_by_name @project1, nil, 'test.txt'
|
||||||
@ -216,11 +218,10 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert_response :no_content
|
assert_response :no_content
|
||||||
put "/dmsf/webdav/#{@project1.identifier}/Thumbs.db", params: '1234', headers: @admin.merge!({ content_type: :text })
|
put "/dmsf/webdav/#{@project1.identifier}/Thumbs.db", params: '1234', headers: @admin.merge!({ content_type: :text })
|
||||||
assert_response :no_content
|
assert_response :no_content
|
||||||
original = Setting.plugin_redmine_dmsf['dmsf_webdav_ignore']
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_ignore' => '.dump$', 'dmsf_webdav' => '1'} do
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_ignore'] = '.dump$'
|
|
||||||
put "/dmsf/webdav/#{@project1.identifier}/test.dump", params: '1234', headers: @admin.merge!({ content_type: :text })
|
put "/dmsf/webdav/#{@project1.identifier}/test.dump", params: '1234', headers: @admin.merge!({ content_type: :text })
|
||||||
assert_response :no_content
|
assert_response :no_content
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_ignore'] = original
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_put_non_versioned_files
|
def test_put_non_versioned_files
|
||||||
@ -252,7 +253,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert_response :created
|
assert_response :created
|
||||||
end
|
end
|
||||||
|
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_disable_versioning'] = '.dump$'
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_disable_versioning' => '.dump$', 'dmsf_webdav' => '1'} do
|
||||||
put "/dmsf/webdav/#{@project1.identifier}/file3.dump", params: '1234', headers: credentials
|
put "/dmsf/webdav/#{@project1.identifier}/file3.dump", params: '1234', headers: credentials
|
||||||
assert_response :success
|
assert_response :success
|
||||||
file3 = DmsfFile.find_by(project_id: @project1.id, dmsf_folder_id: nil, name: 'file3.dump')
|
file3 = DmsfFile.find_by(project_id: @project1.id, dmsf_folder_id: nil, name: 'file3.dump')
|
||||||
@ -266,6 +267,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert_response :created
|
assert_response :created
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_put_into_subproject
|
def test_put_into_subproject
|
||||||
put "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/test-1234.txt", params: '1234',
|
put "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/test-1234.txt", params: '1234',
|
||||||
@ -299,18 +301,20 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_ignore_1b_files_on
|
def test_ignore_1b_files_on
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_ignore_1b_file_for_authentication'] = '1'
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_ignore_1b_file_for_authentication' => '1', 'dmsf_webdav' => '1'} do
|
||||||
put "/dmsf/webdav/#{@project1.identifier}/1bfile.txt", params: '1',
|
put "/dmsf/webdav/#{@project1.identifier}/1bfile.txt", params: '1',
|
||||||
headers: @jsmith.merge!({ content_type: :text })
|
headers: @jsmith.merge!({ content_type: :text })
|
||||||
assert_response :no_content
|
assert_response :no_content
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_ignore_1b_files_off
|
def test_ignore_1b_files_off
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_ignore_1b_file_for_authentication'] = ''
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_ignore_1b_file_for_authentication' => nil, 'dmsf_webdav' => '1'} do
|
||||||
put "/dmsf/webdav/#{@project1.identifier}/1bfile.txt", params: '1',
|
put "/dmsf/webdav/#{@project1.identifier}/1bfile.txt", params: '1',
|
||||||
headers: @jsmith.merge!({ content_type: :text })
|
headers: @jsmith.merge!({ content_type: :text })
|
||||||
assert_response :created
|
assert_response :created
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_files_exceeded_max_attachment_size
|
def test_files_exceeded_max_attachment_size
|
||||||
Setting.attachment_max_size = '1'
|
Setting.attachment_max_size = '1'
|
||||||
|
|||||||
@ -36,9 +36,9 @@ module RedmineDmsf
|
|||||||
@someone = credentials('someone', 'foo')
|
@someone = credentials('someone', 'foo')
|
||||||
@anonymous = credentials('')
|
@anonymous = credentials('')
|
||||||
@project1 = Project.find 1
|
@project1 = Project.find 1
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = '1'
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1'} do
|
||||||
Setting.plugin_redmine_dmsf['dmsf_projects_as_subfolders'] = nil
|
|
||||||
@project1_name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
@project1_name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||||
|
end
|
||||||
@project1_uri = Addressable::URI.escape(@project1_name)
|
@project1_uri = Addressable::URI.escape(@project1_name)
|
||||||
@project2 = Project.find 2
|
@project2 = Project.find 2
|
||||||
@project3 = Project.find 3
|
@project3 = Project.find 3
|
||||||
@ -65,6 +65,7 @@ module RedmineDmsf
|
|||||||
Setting.plugin_redmine_dmsf['dmsf_webdav'] = '1'
|
Setting.plugin_redmine_dmsf['dmsf_webdav'] = '1'
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_strategy'] = 'WEBDAV_READ_WRITE'
|
Setting.plugin_redmine_dmsf['dmsf_webdav_strategy'] = 'WEBDAV_READ_WRITE'
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = nil
|
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = nil
|
||||||
|
Setting.plugin_redmine_dmsf['dmsf_projects_as_subfolders'] = nil
|
||||||
Setting.plugin_redmine_dmsf['dmsf_storage_directory'] = File.join(%w(files dmsf))
|
Setting.plugin_redmine_dmsf['dmsf_storage_directory'] = File.join(%w(files dmsf))
|
||||||
FileUtils.cp_r File.join(File.expand_path('../fixtures/files', __FILE__), '.'), DmsfFile.storage_path
|
FileUtils.cp_r File.join(File.expand_path('../fixtures/files', __FILE__), '.'), DmsfFile.storage_path
|
||||||
User.current = nil
|
User.current = nil
|
||||||
@ -75,7 +76,7 @@ module RedmineDmsf
|
|||||||
begin
|
begin
|
||||||
FileUtils.rm_rf DmsfFile.storage_path
|
FileUtils.rm_rf DmsfFile.storage_path
|
||||||
rescue => e
|
rescue => e
|
||||||
error e.message
|
Rails.logger.error e.message
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -49,9 +49,9 @@ module RedmineDmsf
|
|||||||
@dlopper = User.find_by(login: 'dlopper')
|
@dlopper = User.find_by(login: 'dlopper')
|
||||||
@someone = User.find_by(login: 'someone')
|
@someone = User.find_by(login: 'someone')
|
||||||
@project1 = Project.find 1
|
@project1 = Project.find 1
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = '1'
|
with_settings plugin_redmine_dmsf: {'dmsf_webdav_use_project_names' => '1'} do
|
||||||
Setting.plugin_redmine_dmsf['dmsf_projects_as_subfolders'] = nil
|
|
||||||
@project1_name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
@project1_name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)
|
||||||
|
end
|
||||||
@project1_uri = Addressable::URI.escape(@project1_name)
|
@project1_uri = Addressable::URI.escape(@project1_name)
|
||||||
@project2 = Project.find 2
|
@project2 = Project.find 2
|
||||||
@project3 = Project.find 3
|
@project3 = Project.find 3
|
||||||
@ -86,9 +86,9 @@ module RedmineDmsf
|
|||||||
role.add_permission! :manage_workflows
|
role.add_permission! :manage_workflows
|
||||||
role.add_permission! :file_approval
|
role.add_permission! :file_approval
|
||||||
end
|
end
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav'] = '1'
|
#Setting.plugin_redmine_dmsf['dmsf_webdav'] = '1'
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_strategy'] = 'WEBDAV_READ_WRITE'
|
#Setting.plugin_redmine_dmsf['dmsf_webdav_strategy'] = 'WEBDAV_READ_WRITE'
|
||||||
Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = nil
|
#Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = nil
|
||||||
Setting.plugin_redmine_dmsf['dmsf_storage_directory'] = File.join(%w(files dmsf))
|
Setting.plugin_redmine_dmsf['dmsf_storage_directory'] = File.join(%w(files dmsf))
|
||||||
Setting.plugin_redmine_dmsf['dmsf_projects_as_subfolders'] = nil
|
Setting.plugin_redmine_dmsf['dmsf_projects_as_subfolders'] = nil
|
||||||
Setting.text_formatting = 'Textile'
|
Setting.text_formatting = 'Textile'
|
||||||
@ -101,7 +101,7 @@ module RedmineDmsf
|
|||||||
begin
|
begin
|
||||||
FileUtils.rm_rf DmsfFile.storage_path
|
FileUtils.rm_rf DmsfFile.storage_path
|
||||||
rescue => e
|
rescue => e
|
||||||
error e.message
|
Rails.logger.error e.message
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -238,12 +238,11 @@ class DmsfFileTest < RedmineDmsf::Test::UnitTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_storage_path
|
def test_storage_path
|
||||||
setting = Setting.plugin_redmine_dmsf['dmsf_storage_directory']
|
with_settings plugin_redmine_dmsf: {'dmsf_storage_directory' => 'files/dmsf'} do
|
||||||
Setting.plugin_redmine_dmsf['dmsf_storage_directory'] = 'files/dmsf'
|
|
||||||
sp = DmsfFile.storage_path
|
sp = DmsfFile.storage_path
|
||||||
assert_kind_of Pathname, sp
|
assert_kind_of Pathname, sp
|
||||||
assert_equal Rails.root.join(Setting.plugin_redmine_dmsf['dmsf_storage_directory']).to_s, sp.to_s
|
assert_equal Rails.root.join(Setting.plugin_redmine_dmsf['dmsf_storage_directory']).to_s, sp.to_s
|
||||||
Setting.plugin_redmine_dmsf['dmsf_storage_directory'] = setting
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_owner
|
def test_owner
|
||||||
|
|||||||
@ -67,7 +67,7 @@ module RedmineDmsf
|
|||||||
begin
|
begin
|
||||||
FileUtils.rm_rf DmsfFile.storage_path
|
FileUtils.rm_rf DmsfFile.storage_path
|
||||||
rescue => e
|
rescue => e
|
||||||
error e.message
|
Rails.logger.error e.message
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user