This commit is contained in:
Karel Pičman 2022-10-13 08:21:42 +02:00
parent 7ef8cf5626
commit c369d6d18f
16 changed files with 44 additions and 49 deletions

View File

@ -102,7 +102,7 @@ dmsf_files_011:
dmsf_files_012: dmsf_files_012:
id: 12 id: 12
project_id: 3 project_id: 5
dmsf_folder_id: NULL dmsf_folder_id: NULL
name: 'test.txt' name: 'test.txt'
notification: false notification: false

View File

@ -67,6 +67,6 @@ dmsf_folders_009:
dmsf_folders_010: dmsf_folders_010:
id: 10 id: 10
title: folder10 title: folder10
project_id: 3 project_id: 5
dmsf_folder_id: NULL dmsf_folder_id: NULL
user_id: 1 user_id: 1

View File

@ -381,16 +381,16 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
with_settings plugin_redmine_dmsf: {'dmsf_projects_as_subfolders' => '1'} do with_settings plugin_redmine_dmsf: {'dmsf_projects_as_subfolders' => '1'} do
get :show, params: { id: @project1.id } get :show, params: { id: @project1.id }
assert_response :success assert_response :success
# @project3 is as a sub-folder # @project5 is as a sub-folder
assert_select "tr##{@project3.id}pspan", count: 1 assert_select "tr##{@project5.id}pspan", count: 1
end 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 }
assert_response :success assert_response :success
# @project3 is not as a sub-folder # @project5 is not as a sub-folder
assert_select "tr##{@project3.id}pspan", count: 0 assert_select "tr##{@project5.id}pspan", count: 0
end end
def test_index def test_index

View File

@ -70,9 +70,9 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest
# ... # ...
# </dmsf_nodes> # </dmsf_nodes>
# </dmsf> # </dmsf>
# @project3 is as a sub-folder # @project5 is as a sub-folder
assert_select 'dmsf > dmsf_nodes > node > id', text: @project3.id.to_s assert_select 'dmsf > dmsf_nodes > node > id', text: @project5.id.to_s
assert_select 'dmsf > dmsf_nodes > node > title', text: @project3.name assert_select 'dmsf > dmsf_nodes > node > title', text: @project5.name
assert_select 'dmsf > dmsf_nodes > node > type', text: 'project' assert_select 'dmsf > dmsf_nodes > node > type', text: 'project'
end end
end end
@ -94,8 +94,8 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest
# </dmsf_nodes> # </dmsf_nodes>
# </dmsf> # </dmsf>
assert_select 'dmsf > dmsf_nodes > node', count: 1 assert_select 'dmsf > dmsf_nodes > node', count: 1
assert_select 'dmsf > dmsf_nodes > node > id', text: @folder6.id.to_s assert_select 'dmsf > dmsf_nodes > node > id', text: @folder7.id.to_s
assert_select 'dmsf > dmsf_nodes > node > title', text: @folder6.title assert_select 'dmsf > dmsf_nodes > node > title', text: @folder7.title
end end
def test_create_folder def test_create_folder

View File

@ -195,25 +195,25 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest
end end
def test_delete_file_in_subproject def test_delete_file_in_subproject
delete "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/#{@file12.name}", params: nil, headers: @admin delete "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/#{@file12.name}", params: nil, headers: @admin
assert_response :success assert_response :success
end end
def test_delete_folder_in_subproject def test_delete_folder_in_subproject
delete "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/#{@folder10.title}", params: nil, delete "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/#{@folder10.title}", params: nil,
headers: @admin headers: @admin
assert_response :success assert_response :success
end end
def test_delete_folder_in_subproject_brackets def test_delete_folder_in_subproject_brackets
project3_uri = Addressable::URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project3)) project3_uri = Addressable::URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project5))
project1_uri = Addressable::URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) project1_uri = Addressable::URI.encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1))
delete "/dmsf/webdav/#{project1_uri}/#{project3_uri}/#{@folder10.title}", params: nil, headers: @admin delete "/dmsf/webdav/#{project1_uri}/#{project3_uri}/#{@folder10.title}", params: nil, headers: @admin
assert_response :success assert_response :success
end end
def test_delete_subproject def test_delete_subproject
delete "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}", params: nil, headers: @admin delete "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}", params: nil, headers: @admin
assert_response :method_not_allowed assert_response :method_not_allowed
end end

View File

@ -164,12 +164,12 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest
end end
def test_get_file_in_subproject def test_get_file_in_subproject
get "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/#{@file12.name}", params: nil, headers: @admin get "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/#{@file12.name}", params: nil, headers: @admin
assert_response :success assert_response :success
end end
def test_get_folder_in_subproject def test_get_folder_in_subproject
get "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/#{@folder10.title}", params: nil, headers: @admin get "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/#{@folder10.title}", params: nil, headers: @admin
assert_response :success assert_response :success
end end

View File

@ -102,12 +102,12 @@ class DmsfWebdavHeadTest < RedmineDmsf::Test::IntegrationTest
end end
def test_head_file_in_subproject def test_head_file_in_subproject
head "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/#{@file12.name}", params: nil, headers: @admin head "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/#{@file12.name}", params: nil, headers: @admin
assert_response :success assert_response :success
end end
def test_head_folder_in_subproject def test_head_folder_in_subproject
head "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/#{@folder10.title}", params: nil, headers: @admin head "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/#{@folder10.title}", params: nil, headers: @admin
assert_response :success assert_response :success
end end

View File

@ -121,7 +121,7 @@ class DmsfWebdavLockTest < RedmineDmsf::Test::IntegrationTest
def test_lock_subproject def test_lock_subproject
log_user 'admin', 'admin' log_user 'admin', 'admin'
process :lock, "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}", params: @xml, process :lock, "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}", params: @xml,
headers: @admin.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite' }) headers: @admin.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite' })
assert_response :multi_status assert_response :multi_status
assert_match '<d:status>HTTP/1.1 405 Method Not Allowed</d:status>', response.body assert_match '<d:status>HTTP/1.1 405 Method Not Allowed</d:status>', response.body

View File

@ -72,20 +72,20 @@ class DmsfWebdavMkcolTest < RedmineDmsf::Test::IntegrationTest
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}/#{@project5.identifier}/test1", params: nil,
headers: @admin headers: @admin
assert_response :success assert_response :success
end end
def test_create_folder_with_square_brackets_of_the_same_name_as_a_sub_project def test_create_folder_with_square_brackets_of_the_same_name_as_a_sub_project
project3_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project3)) project3_uri = ERB::Util.url_encode(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project5))
process :mkcol, "/dmsf/webdav/#{@project1.identifier}/#{project3_uri}", params: nil, process :mkcol, "/dmsf/webdav/#{@project1.identifier}/#{project3_uri}", params: nil,
headers: @admin headers: @admin
assert_response :method_not_allowed assert_response :method_not_allowed
end end
def test_create_folder_of_the_same_name_as_a_sub_project def test_create_folder_of_the_same_name_as_a_sub_project
process :mkcol, "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}", params: nil, process :mkcol, "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}", params: nil,
headers: @admin headers: @admin
assert_response :method_not_allowed assert_response :method_not_allowed
end end

View File

@ -294,33 +294,33 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
def test_move_file_in_subproject def test_move_file_in_subproject
assert_difference '@file12.dmsf_file_revisions.count', +1 do assert_difference '@file12.dmsf_file_revisions.count', +1 do
process :move, "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/#{@file12.name}", params: nil, process :move, "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/#{@file12.name}", params: nil,
headers: @admin.merge!({ headers: @admin.merge!({
destination: "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/new_file_name" }) destination: "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/new_file_name" })
assert_response :created assert_response :created
end end
end end
def test_move_folder_in_subproject def test_move_folder_in_subproject
process :move, "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/#{@folder10.title}", params: nil, process :move, "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/#{@folder10.title}", params: nil,
headers: @admin.merge!({ headers: @admin.merge!({
destination: "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/new_folder_name" }) destination: "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/new_folder_name" })
assert_response :created assert_response :created
@folder10.reload @folder10.reload
assert_equal 'new_folder_name', @folder10.title assert_equal 'new_folder_name', @folder10.title
end end
def test_move_folder_in_subproject_to_the_same_name_as_subproject def test_move_folder_in_subproject_to_the_same_name_as_subproject
process :move, "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/#{@folder10.title}", params: nil, process :move, "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/#{@folder10.title}", params: nil,
headers: @admin.merge!({ headers: @admin.merge!({
destination: "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}/#{@project3.identifier}" }) destination: "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/#{@project5.identifier}" })
assert_response :created assert_response :created
@folder10.reload @folder10.reload
assert_equal @project3.identifier, @folder10.title assert_equal @project5.identifier, @folder10.title
end end
def test_move_subproject def test_move_subproject
process :move, "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}", params: nil, process :move, "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}", params: nil,
headers: @admin.merge!({ headers: @admin.merge!({
destination: "http://www.example.com/dmsf/webdav/#{@project1.identifier}/new_project_name" }) destination: "http://www.example.com/dmsf/webdav/#{@project1.identifier}/new_project_name" })
assert_response :method_not_allowed assert_response :method_not_allowed

View File

@ -141,7 +141,7 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest
end end
def test_options_for_subproject def test_options_for_subproject
process :options, "/dmsf/webdav/#{@project1.identifier}/#{@project3.identifier}", params: nil, headers: @admin process :options, "/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}", params: nil, headers: @admin
assert_response :success assert_response :success
end end

View File

@ -169,11 +169,11 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
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}/#{@project5.identifier}", params: nil,
headers: @admin.merge!({ HTTP_DEPTH: '1'}) 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/#{@project1.identifier}/#{@project3.identifier}/</d:href>") assert response.body.include?("<d:href>http://www.example.com:80/dmsf/webdav/#{@project1.identifier}/#{@project5.identifier}/</d:href>")
assert response.body.include?("<d:displayname>#{RedmineDmsf::Webdav::ProjectResource::create_project_name(@project3)}</d:displayname>") assert response.body.include?("<d:displayname>#{RedmineDmsf::Webdav::ProjectResource::create_project_name(@project5)}</d:displayname>")
end end
end end

View File

@ -276,10 +276,10 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
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}/#{@project5.identifier}/test-1234.txt", params: '1234',
headers: @admin.merge!({ content_type: :text }) headers: @admin.merge!({ content_type: :text })
assert_response :created assert_response :created
assert DmsfFile.find_by(project_id: @project3.id, dmsf_folder: nil, name: 'test-1234.txt') assert DmsfFile.find_by(project_id: @project5.id, dmsf_folder: nil, name: 'test-1234.txt')
end end
def test_put_keep_title def test_put_keep_title

View File

@ -37,8 +37,8 @@ module RedmineDmsf
@anonymous = credentials('') @anonymous = credentials('')
@project1 = Project.find 1 @project1 = Project.find 1
@project2 = Project.find 2 @project2 = Project.find 2
@project3 = Project.find 3 @project5 = Project.find 5
[@project1, @project2, @project3].each do |project| [@project1, @project2, @project5].each do |project|
project.enable_module! :dmsf project.enable_module! :dmsf
end end
@file1 = DmsfFile.find 1 @file1 = DmsfFile.find 1

View File

@ -54,9 +54,8 @@ module RedmineDmsf
end 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 @project5 = Project.find 5
@project4 = Project.find 4 [@project1, @project2, @project5].each do |project|
[@project1, @project2, @project3].each do |project|
project.enable_module! :dmsf project.enable_module! :dmsf
project.enable_module! :issue_tracking project.enable_module! :issue_tracking
end end

View File

@ -96,14 +96,10 @@ class ProjectPatchTest < RedmineDmsf::Test::UnitTest
end end
def test_dmsf_avaliable def test_dmsf_avaliable
# @project1 # @project1 (:dmsf, manager)
# L @project3 # L @project3 (:dmsf), @project4, @project5
User.current = @jsmith
assert @project1.dmsf_available? assert @project1.dmsf_available?
assert @project3.dmsf_available?
@project1.disable_module! :dmsf
assert @project3.dmsf_available?
@project3.disable_module! :dmsf
@project3.reload
assert !@project3.dmsf_available? assert !@project3.dmsf_available?
end end