#218 Recycle bin - functional tests
This commit is contained in:
parent
223cb4fe50
commit
50835ce092
4
test/fixtures/dmsf_folders.yml
vendored
4
test/fixtures/dmsf_folders.yml
vendored
@ -26,10 +26,10 @@
|
||||
project_id: 2
|
||||
dmsf_folder_id: 3
|
||||
user_id: 1
|
||||
|
||||
- dmsf_folders_005:
|
||||
id: 5
|
||||
title: folder3
|
||||
project_id: 1
|
||||
dmsf_folder_id: 2
|
||||
user_id: 1
|
||||
|
||||
user_id: 1
|
||||
21
test/fixtures/dmsf_links.yml
vendored
21
test/fixtures/dmsf_links.yml
vendored
@ -11,6 +11,19 @@ folder_link:
|
||||
deleted_by_user_id: NULL
|
||||
created_at: <%= DateTime.now() %>
|
||||
updated_at: <%= DateTime.now() %>
|
||||
|
||||
file_link:
|
||||
id: 2
|
||||
target_project_id: 1
|
||||
target_id: 4
|
||||
target_type: DmsfFile
|
||||
name: test_link
|
||||
project_id: 1
|
||||
dmsf_folder_id: 1
|
||||
deleted: 0
|
||||
deleted_by_user_id: NULL
|
||||
created_at: <%= DateTime.now() %>
|
||||
updated_at: <%= DateTime.now() %>
|
||||
|
||||
folder_link2:
|
||||
id: 3
|
||||
@ -24,15 +37,15 @@ folder_link2:
|
||||
deleted_by_user_id: NULL
|
||||
created_at: <%= DateTime.now() %>
|
||||
updated_at: <%= DateTime.now() %>
|
||||
|
||||
file_link:
|
||||
id: 2
|
||||
|
||||
file_link2:
|
||||
id: 4
|
||||
target_project_id: 1
|
||||
target_id: 4
|
||||
target_type: DmsfFile
|
||||
name: test_link
|
||||
project_id: 1
|
||||
dmsf_folder_id: 1
|
||||
dmsf_folder_id: NULL
|
||||
deleted: 0
|
||||
deleted_by_user_id: NULL
|
||||
created_at: <%= DateTime.now() %>
|
||||
|
||||
@ -22,7 +22,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
|
||||
include Redmine::I18n
|
||||
|
||||
fixtures :users, :dmsf_folders, :custom_fields, :custom_values, :projects,
|
||||
:roles, :members, :member_roles
|
||||
:roles, :members, :member_roles, :dmsf_links, :dmsf_files, :dmsf_file_revisions
|
||||
|
||||
def setup
|
||||
@request.session[:user_id] = 2
|
||||
@ -32,6 +32,9 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
|
||||
@folder1 = DmsfFolder.find_by_id 1
|
||||
@folder2 = DmsfFolder.find_by_id 2
|
||||
@folder4 = DmsfFolder.find_by_id 4
|
||||
@file1 = DmsfFile.find_by_id 1
|
||||
@file_link2 = DmsfLink.find_by_id 4
|
||||
@folder_link1 = DmsfLink.find_by_id 1
|
||||
@role = Role.find_by_id 1
|
||||
@custom_field = CustomField.find_by_id 21
|
||||
@custom_value = CustomValue.find_by_id 21
|
||||
@ -44,6 +47,9 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
|
||||
assert_kind_of DmsfFolder, @folder1
|
||||
assert_kind_of DmsfFolder, @folder2
|
||||
assert_kind_of DmsfFolder, @folder4
|
||||
assert_kind_of DmsfFile, @file1
|
||||
assert_kind_of DmsfLink, @file_link2
|
||||
assert_kind_of DmsfLink, @folder_link1
|
||||
assert_kind_of Role, @role
|
||||
assert_kind_of CustomField, @custom_field
|
||||
assert_kind_of CustomValue, @custom_value
|
||||
@ -116,4 +122,38 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
|
||||
assert_response :redirect
|
||||
end
|
||||
|
||||
def test_delete_restore_entries
|
||||
# Missing permissions
|
||||
get :entries_operation, :id => @project, :delete_entries => 'Delete',
|
||||
:subfolders => [@folder1.id.to_s], :files => [@file1.id.to_s],
|
||||
:dir_links => [@folder_link1.id.to_s], :file_links => [@file_link2.id.to_s]
|
||||
assert_response :forbidden
|
||||
|
||||
# Permissions OK but the folder is not empty
|
||||
@request.env['HTTP_REFERER'] = dmsf_folder_path(:id => @project.id)
|
||||
@role.add_permission! :folder_manipulation
|
||||
@role.add_permission! :view_dmsf_files
|
||||
get :entries_operation, :id => @project, :delete_entries => 'Delete',
|
||||
:subfolders => [@folder1.id.to_s], :files => [@file1.id.to_s],
|
||||
:dir_links => [@folder_link1.id.to_s], :file_links => [@file_link2.id.to_s]
|
||||
assert_response :redirect
|
||||
assert_equal flash[:error].to_s, l(:error_folder_is_not_empty)
|
||||
|
||||
# Permissions OK
|
||||
flash[:error] = nil
|
||||
get :entries_operation, :id => @project, :delete_entries => 'Delete',
|
||||
:subfolders => [], :files => [@file1.id.to_s],
|
||||
:dir_links => [], :file_links => [@file_link2.id.to_s]
|
||||
assert_response :redirect
|
||||
assert_nil flash[:error]
|
||||
|
||||
# Restore
|
||||
@request.env['HTTP_REFERER'] = trash_dmsf_path(:id => @project.id)
|
||||
get :entries_operation, :id => @project, :restore_entries => 'Restore',
|
||||
:subfolders => [], :files => [@file1.id.to_s],
|
||||
:dir_links => [], :file_links => [@file_link2.id.to_s]
|
||||
assert_response :redirect
|
||||
assert_nil flash[:error]
|
||||
end
|
||||
|
||||
end
|
||||
@ -31,15 +31,11 @@ class DmsfFileRevisionTest < RedmineDmsf::Test::UnitTest
|
||||
assert_kind_of DmsfFileRevision, @revision5
|
||||
end
|
||||
|
||||
def test_delete_restore
|
||||
assert !@revision5.file.locked_for_user?, "The file is locked"
|
||||
assert @revision5.file.revisions.length > 1, "The last revision can't be deleted"
|
||||
@revision5.delete false
|
||||
assert_nil DmsfFileRevision.visible.where(:id => @revision5.id).first, @revision5.errors[:base][0]
|
||||
assert DmsfFileRevision.deleted.where(:id => @revision5.id).first
|
||||
@revision5.restore
|
||||
assert_nil DmsfFileRevision.deleted.where(:id => @revision5.id).first
|
||||
assert DmsfFileRevision.visible.where(:id => @revision5.id).first
|
||||
def test_delete_restore
|
||||
@revision5.delete false
|
||||
assert @revision5.deleted
|
||||
@revision5.restore
|
||||
assert !@revision5.deleted
|
||||
end
|
||||
|
||||
def test_destroy
|
||||
|
||||
@ -85,26 +85,24 @@ class DmsfFileTest < RedmineDmsf::Test::UnitTest
|
||||
|
||||
def test_delete_restore
|
||||
assert_equal 1, @file4.revisions.visible.count
|
||||
assert_equal 1, @file4.referenced_links.visible.count
|
||||
assert_equal 2, @file4.referenced_links.visible.count
|
||||
|
||||
# Delete
|
||||
@file4.delete false
|
||||
assert_nil DmsfFile.visible.where(:id => @file4.id).first, @file4.errors[:base][0]
|
||||
assert DmsfFile.deleted.where(:id => @file4.id).first
|
||||
@file4.delete false
|
||||
assert @file4.deleted
|
||||
assert_equal 0, @file4.revisions.visible.count
|
||||
assert_equal 0, @file4.referenced_links.visible.count
|
||||
|
||||
# Restore
|
||||
@file4.restore
|
||||
assert_nil DmsfFile.deleted.where(:id => @file4.id).first
|
||||
assert DmsfFile.visible.where(:id => @file4.id).first
|
||||
@file4.restore
|
||||
assert !@file4.deleted
|
||||
assert_equal 1, @file4.revisions.visible.count
|
||||
assert_equal 1, @file4.referenced_links.visible.count
|
||||
assert_equal 2, @file4.referenced_links.visible.count
|
||||
end
|
||||
|
||||
def test_destroy
|
||||
assert_equal 1, @file4.revisions.visible.count
|
||||
assert_equal 1, @file4.referenced_links.visible.count
|
||||
assert_equal 2, @file4.referenced_links.visible.count
|
||||
@file4.delete true
|
||||
assert_nil DmsfFile.find_by_id(@file4.id)
|
||||
assert_equal 0, @file4.revisions.count
|
||||
|
||||
@ -33,13 +33,11 @@ class DmsfFolderTest < RedmineDmsf::Test::UnitTest
|
||||
|
||||
def test_delete_restore
|
||||
assert_equal 1, @folder4.referenced_links.visible.count
|
||||
@folder4.delete false
|
||||
assert_nil DmsfFolder.visible.where(:id => @folder4.id).first, @folder4.errors[:base][0]
|
||||
assert DmsfFolder.deleted.where(:id => @folder4.id).first
|
||||
@folder4.delete false
|
||||
assert @folder4.deleted
|
||||
assert_equal 0, @folder4.referenced_links.visible.count
|
||||
@folder4.restore
|
||||
assert_nil DmsfFolder.deleted.where(:id => @folder4.id).first
|
||||
assert DmsfFolder.visible.where(:id => @folder4.id).first
|
||||
@folder4.restore
|
||||
assert !@folder4.deleted
|
||||
assert_equal 1, @folder4.referenced_links.visible.count
|
||||
end
|
||||
|
||||
|
||||
@ -166,20 +166,16 @@ class DmsfLinksTest < RedmineDmsf::Test::UnitTest
|
||||
|
||||
def test_delete_restore
|
||||
# File link
|
||||
@file_link.delete false
|
||||
assert_nil DmsfLink.visible.where(:id => @file_link.id).first, @file_link.errors[:base][0]
|
||||
assert DmsfLink.deleted.where(:id => @file_link.id).first
|
||||
@file_link.restore
|
||||
assert_nil DmsfLink.deleted.where(:id => @file_link.id).first
|
||||
assert DmsfLink.visible.where(:id => @file_link.id).first
|
||||
@file_link.delete false
|
||||
assert @file_link.deleted
|
||||
@file_link.restore
|
||||
assert !@file_link.deleted
|
||||
|
||||
# Folder link
|
||||
@folder_link.delete false
|
||||
assert_nil DmsfLink.visible.where(:id => @folder_link.id).first
|
||||
assert DmsfLink.deleted.where(:id => @folder_link.id).first
|
||||
@folder_link.restore
|
||||
assert_nil DmsfLink.deleted.where(:id => @folder_link.id).first
|
||||
assert DmsfLink.visible.where(:id => @folder_link.id).first
|
||||
@folder_link.delete false
|
||||
assert @folder_link.deleted
|
||||
@folder_link.restore
|
||||
assert !@folder_link.deleted
|
||||
end
|
||||
|
||||
def test_destroy
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user