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:
id: 12
project_id: 3
project_id: 5
dmsf_folder_id: NULL
name: 'test.txt'
notification: false

View File

@ -67,6 +67,6 @@ dmsf_folders_009:
dmsf_folders_010:
id: 10
title: folder10
project_id: 3
project_id: 5
dmsf_folder_id: NULL
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
get :show, params: { id: @project1.id }
assert_response :success
# @project3 is as a sub-folder
assert_select "tr##{@project3.id}pspan", count: 1
# @project5 is as a sub-folder
assert_select "tr##{@project5.id}pspan", count: 1
end
end
def test_show_without_sub_projects
get :show, params: { id: @project1.id }
assert_response :success
# @project3 is not as a sub-folder
assert_select "tr##{@project3.id}pspan", count: 0
# @project5 is not as a sub-folder
assert_select "tr##{@project5.id}pspan", count: 0
end
def test_index

View File

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

View File

@ -195,25 +195,25 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest
end
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
end
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
assert_response :success
end
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))
delete "/dmsf/webdav/#{project1_uri}/#{project3_uri}/#{@folder10.title}", params: nil, headers: @admin
assert_response :success
end
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
end

View File

@ -164,12 +164,12 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest
end
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
end
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
end

View File

@ -102,12 +102,12 @@ class DmsfWebdavHeadTest < RedmineDmsf::Test::IntegrationTest
end
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
end
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
end

View File

@ -121,7 +121,7 @@ class DmsfWebdavLockTest < RedmineDmsf::Test::IntegrationTest
def test_lock_subproject
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' })
assert_response :multi_status
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
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
assert_response :success
end
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,
headers: @admin
assert_response :method_not_allowed
end
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
assert_response :method_not_allowed
end

View File

@ -294,33 +294,33 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest
def test_move_file_in_subproject
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!({
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
end
end
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!({
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
@folder10.reload
assert_equal 'new_folder_name', @folder10.title
end
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!({
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
@folder10.reload
assert_equal @project3.identifier, @folder10.title
assert_equal @project5.identifier, @folder10.title
end
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!({
destination: "http://www.example.com/dmsf/webdav/#{@project1.identifier}/new_project_name" })
assert_response :method_not_allowed

View File

@ -141,7 +141,7 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest
end
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
end

View File

@ -169,11 +169,11 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest
end
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'})
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:displayname>#{RedmineDmsf::Webdav::ProjectResource::create_project_name(@project3)}</d:displayname>")
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(@project5)}</d:displayname>")
end
end

View File

@ -276,10 +276,10 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
end
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 })
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
def test_put_keep_title

View File

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

View File

@ -54,9 +54,8 @@ module RedmineDmsf
end
@project1_uri = Addressable::URI.escape(@project1_name)
@project2 = Project.find 2
@project3 = Project.find 3
@project4 = Project.find 4
[@project1, @project2, @project3].each do |project|
@project5 = Project.find 5
[@project1, @project2, @project5].each do |project|
project.enable_module! :dmsf
project.enable_module! :issue_tracking
end

View File

@ -96,14 +96,10 @@ class ProjectPatchTest < RedmineDmsf::Test::UnitTest
end
def test_dmsf_avaliable
# @project1
# L @project3
# @project1 (:dmsf, manager)
# L @project3 (:dmsf), @project4, @project5
User.current = @jsmith
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?
end