#218 Recycle bin - functional tests

This commit is contained in:
Karel Pičman 2014-06-13 14:21:29 +02:00
parent 223cb4fe50
commit 50835ce092
7 changed files with 84 additions and 43 deletions

View File

@ -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

View File

@ -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() %>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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