From dc0eb77cc61b5a4bec44bc597c0fd1e9e3590327 Mon Sep 17 00:00:00 2001 From: pavel Date: Tue, 11 Dec 2018 01:00:12 +0100 Subject: [PATCH 1/2] redmine 4.0.0 --- after_init.rb | 4 +- app/controllers/dmsf_controller.rb | 7 +- app/controllers/dmsf_files_controller.rb | 10 +- app/controllers/dmsf_upload_controller.rb | 10 +- app/controllers/dmsf_workflows_controller.rb | 34 +++---- app/helpers/dmsf_upload_helper.rb | 9 +- app/models/dmsf_file.rb | 2 +- app/models/dmsf_mailer.rb | 28 +++++- app/models/dmsf_workflow.rb | 8 +- db/migrate/01_create_hierarchy.rb | 2 +- db/migrate/02_dmsf_normalization.rb | 2 +- db/migrate/03_dmsf_0_8_0.rb | 2 +- db/migrate/04_dmsf_0_9_0.rb | 2 +- db/migrate/05_dmsf_0_9_0_1.rb | 2 +- db/migrate/06_dmsf_1_2_0.rb | 2 +- db/migrate/07_dmsf_1_4_4.rb | 2 +- .../20120822100401_create_dmsf_workflows.rb | 2 +- ...120822100402_create_dmsf_workflow_steps.rb | 2 +- ...3_create_dmsf_workflow_step_assignments.rb | 2 +- ...00404_create_dmsf_workflow_step_actions.rb | 2 +- db/migrate/20130819013955_update_projects.rb | 2 +- .../20131108141401_add_index_to_dmsf_files.rb | 2 +- ...0131108141402_add_index_to_dmsf_folders.rb | 2 +- ...3141401_add_index_to_dmsf_file_revision.rb | 2 +- .../20131113141402_add_index_to_dmsf_lock.rb | 2 +- .../20131113141403_create_dmsf_links.rb | 2 +- db/migrate/20140314132501_notifications_on.rb | 2 +- db/migrate/20140519133201_trash_bin.rb | 2 +- ...1013102501_remove_project_from_revision.rb | 2 +- ...41015132701_remove_folder_from_revision.rb | 2 +- ...0141205143001_remove_uniqueness_from_wf.rb | 2 +- .../20150120152101_notifications_nullable.rb | 2 +- db/migrate/20150130052716_add_external.rb | 2 +- .../20150202010301_add_user_to_links.rb | 2 +- db/migrate/20150910153701_title_not_null.rb | 2 +- db/migrate/20151020141801_large_files.rb | 2 +- db/migrate/20151209100001_title_format.rb | 2 +- ...20160215125801_approval_workflow_status.rb | 2 +- db/migrate/20160217133001_status_deleted.rb | 2 +- ...0222140401_approval_workflow_std_fields.rb | 2 +- .../20160421150501_add_digest_to_revision.rb | 2 +- .../20161223133200_create_dmsf_public_urls.rb | 2 +- ...64701_add_name_to_appoval_workflow_step.rb | 2 +- .../20170118142001_dmsf_file_container.rb | 2 +- ...0170204214753_add_revision_to_dmsf_lock.rb | 2 +- ...dmsf_file_last_revision_id_to_dmsf_lock.rb | 2 +- ...d_dmsf_not_inheritable_to_custom_fields.rb | 2 +- .../20170323131231_dmsf_description_limit.rb | 2 +- ...30131901_create_dmsf_folder_permissions.rb | 4 +- ...0421101901_dmsf_file_container_rollback.rb | 2 +- .../20170422104901_migrate_documents.rb | 2 +- db/migrate/20170526144701_dmsf_attachable.rb | 4 +- ...4101_change_revision_digest_limit_to_64.rb | 2 +- ...20171110155901_add_index_to_dmsf_folder.rb | 2 +- .../20180216152501_rename_title_format.rb | 2 +- db/migrate/20180903132101_fast_links.rb | 2 +- init.rb | 2 +- .../controllers/issues_controller_hooks.rb | 2 +- .../easy_crm_cases_controller_patch.rb | 2 +- lib/redmine_dmsf/webdav/dmsf_resource.rb | 10 +- lib/tasks/dmsf_alert_approvals.rake | 6 +- test/ci/redmine_install.sh | 2 +- .../dmsf_context_menus_controller_test.rb | 6 +- test/functional/dmsf_controller_test.rb | 76 +++++++------- test/functional/dmsf_files_controller_test.rb | 18 ++-- .../dmsf_files_copy_controller_test.rb | 42 ++++---- ...dmsf_folder_permissions_controller_test.rb | 6 +- .../dmsf_folders_copy_controller_test.rb | 46 ++++----- test/functional/dmsf_links_controller_test.rb | 98 +++++++++---------- .../dmsf_public_urls_controller_test.rb | 6 +- test/functional/dmsf_state_controller_test.rb | 16 +-- .../dmsf_workflow_controller_test.rb | 90 +++++++++-------- test/functional/issues_controller_test.rb | 4 +- test/functional/my_controller_test.rb | 2 +- .../rest_api/dmsf_file_api_test.rb | 12 +-- .../rest_api/dmsf_folder_api_test.rb | 12 +-- .../rest_api/dmsf_link_api_test.rb | 2 +- .../dmsf_webdav_custom_middleware_test.rb | 6 +- .../webdav/dmsf_webdav_delete_test.rb | 48 ++++----- .../webdav/dmsf_webdav_get_test.rb | 32 +++--- .../webdav/dmsf_webdav_head_test.rb | 24 ++--- .../webdav/dmsf_webdav_lock_test.rb | 39 ++++---- .../webdav/dmsf_webdav_mkcol_test.rb | 22 ++--- .../webdav/dmsf_webdav_move_test.rb | 76 +++++++------- .../webdav/dmsf_webdav_options_test.rb | 42 ++++---- .../webdav/dmsf_webdav_post_test.rb | 2 +- .../webdav/dmsf_webdav_propfind_test.rb | 26 ++--- .../webdav/dmsf_webdav_put_test.rb | 70 ++++++------- test/unit/dmsf_mailer_test.rb | 8 +- 89 files changed, 533 insertions(+), 532 deletions(-) diff --git a/after_init.rb b/after_init.rb index 6114569a..f5bbdcde 100644 --- a/after_init.rb +++ b/after_init.rb @@ -23,6 +23,8 @@ require_dependency 'zip' require_dependency File.dirname(__FILE__) + '/lib/redmine_dmsf.rb' +ActiveSupport::Dependencies.autoload_paths << File.join(File.dirname(__FILE__), 'app', 'validators') + def init # Administration menu extension Redmine::MenuManager.map :admin_menu do |menu| @@ -100,7 +102,7 @@ else init end -ActionDispatch::Reloader.to_prepare do +RedmineExtensions::Reloader.to_prepare do # Rubyzip configuration Zip.unicode_names = true diff --git a/app/controllers/dmsf_controller.rb b/app/controllers/dmsf_controller.rb index e545bbe9..1035ff09 100644 --- a/app/controllers/dmsf_controller.rb +++ b/app/controllers/dmsf_controller.rb @@ -178,7 +178,7 @@ class DmsfController < ApplicationController if params[:email][:to].strip.blank? flash[:error] = l(:error_email_to_must_be_entered) else - DmsfMailer.send_documents(@project, params[:email]).deliver + DmsfMailer.deliver_send_documents(@project, params[:email]) File.delete(params[:email][:zipped_content]) flash[:notice] = l(:notice_email_sent, params[:email][:to]) end @@ -527,10 +527,7 @@ class DmsfController < ApplicationController # Activities unless deleted_files.empty? begin - recipients = DmsfMailer.get_notify_users(@project, deleted_files) - recipients.each do |u| - DmsfMailer.files_deleted(u, @project, deleted_files).deliver - end + DmsfMailer.deliver_files_deleted(@project, deleted_files) if Setting.plugin_redmine_dmsf['dmsf_display_notified_recipients'] unless recipients.empty? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') diff --git a/app/controllers/dmsf_files_controller.rb b/app/controllers/dmsf_files_controller.rb index 61b19bfb..58576a5c 100644 --- a/app/controllers/dmsf_files_controller.rb +++ b/app/controllers/dmsf_files_controller.rb @@ -163,10 +163,7 @@ class DmsfFilesController < ApplicationController @file.set_last_revision revision flash[:notice] = (flash[:notice].nil? ? '' : flash[:notice]) + l(:notice_file_revision_created) begin - recipients = DmsfMailer.get_notify_users(@project, [@file]) - recipients.each do |u| - DmsfMailer.files_updated(u, @project, [@file]).deliver - end + DmsfMailer.deliver_files_updated(@project, [@file]) if Setting.plugin_redmine_dmsf['dmsf_display_notified_recipients'] unless recipients.empty? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') @@ -196,10 +193,7 @@ class DmsfFilesController < ApplicationController flash[:notice] = l(:notice_file_deleted) unless commit begin - recipients = DmsfMailer.get_notify_users(@project, [@file]) - recipients.each do |u| - DmsfMailer.files_deleted(u, @project, [@file]).deliver - end + DmsfMailer.deliver_files_deleted(@project, [@file]) if Setting.plugin_redmine_dmsf['dmsf_display_notified_recipients'] unless recipients.empty? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') diff --git a/app/controllers/dmsf_upload_controller.rb b/app/controllers/dmsf_upload_controller.rb index 5193b6b3..2cf7129f 100644 --- a/app/controllers/dmsf_upload_controller.rb +++ b/app/controllers/dmsf_upload_controller.rb @@ -42,16 +42,16 @@ class DmsfUploadController < ApplicationController def upload_files uploaded_files = params[:dmsf_attachments] @uploads = [] - if uploaded_files && uploaded_files.is_a?(Hash) + if uploaded_files # standard file input uploads - uploaded_files.each_value do |uploaded_file| + uploaded_files.each do |_, uploaded_file| upload = DmsfUpload.create_from_uploaded_attachment(@project, @folder, uploaded_file) @uploads.push(upload) if upload end else # plupload multi upload completed uploaded = params[:uploaded] - if uploaded && uploaded.is_a?(Hash) + if uploaded uploaded.each_value do |uploaded_file| @uploads.push(DmsfUpload.new(@project, @folder, uploaded_file)) end @@ -113,11 +113,11 @@ class DmsfUploadController < ApplicationController def commit @files = [] attachments = params[:attachments] - if attachments && attachments.is_a?(Hash) + if attachments @folder = DmsfFolder.visible.find_by(id: attachments[:folder_id]) if attachments[:folder_id].present? # standard file input uploads uploaded_files = attachments.select { |key, value| key == 'uploaded_file'} - uploaded_files.each_value do |uploaded_file| + uploaded_files.each do |_, uploaded_file| upload = DmsfUpload.create_from_uploaded_attachment(@project, @folder, uploaded_file) if upload uploaded_file[:disk_filename] = upload.disk_filename diff --git a/app/controllers/dmsf_workflows_controller.rb b/app/controllers/dmsf_workflows_controller.rb index 10605cdc..da49c30e 100644 --- a/app/controllers/dmsf_workflows_controller.rb +++ b/app/controllers/dmsf_workflows_controller.rb @@ -73,15 +73,13 @@ class DmsfWorkflowsController < ApplicationController if revision.workflow == DmsfWorkflow::STATE_APPROVED # Just approved recipients = DmsfMailer.get_notify_users(@project, [revision.dmsf_file], true) - recipients.each do |user| - DmsfMailer.workflow_notification( - user, + DmsfMailer.deliver_workflow_notification( + recipients, @dmsf_workflow, revision, :text_email_subject_approved, :text_email_finished_approved, - :text_email_to_see_history).deliver if user - end + :text_email_to_see_history) if Setting.plugin_redmine_dmsf['dmsf_display_notified_recipients'] unless recipients.blank? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') @@ -95,16 +93,14 @@ class DmsfWorkflowsController < ApplicationController recipients.push User.find_by(id: revision.dmsf_workflow_assigned_by) recipients.uniq! recipients = recipients & DmsfMailer.get_notify_users(@project, [revision.dmsf_file], true) - recipients.each do |user| - DmsfMailer.workflow_notification( - user, + DmsfMailer.deliver_workflow_notification( + recipients, @dmsf_workflow, revision, :text_email_subject_rejected, :text_email_finished_rejected, :text_email_to_see_history, - action.note).deliver - end + action.note) if Setting.plugin_redmine_dmsf['dmsf_display_notified_recipients'] unless recipients.blank? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') @@ -118,14 +114,14 @@ class DmsfWorkflowsController < ApplicationController # Delegation delegate = User.find_by(id: params[:step_action].to_i / 10) if DmsfMailer.get_notify_users(@project, [revision.dmsf_file], true).include?(delegate) - DmsfMailer.workflow_notification( - delegate, + DmsfMailer.deliver_workflow_notification( + [delegate], @dmsf_workflow, revision, :text_email_subject_delegated, :text_email_finished_delegated, :text_email_to_proceed, - action.note).deliver + action.note) if Setting.plugin_redmine_dmsf['dmsf_display_notified_recipients'] flash[:warning] = l(:warning_email_notifications, :to => delegate.name) end @@ -138,24 +134,24 @@ class DmsfWorkflowsController < ApplicationController # Next step assignments.each do |assignment| if assignment.user && DmsfMailer.get_notify_users(@project, [revision.dmsf_file], true).include?(assignment.user) - DmsfMailer.workflow_notification( - assignment.user, + DmsfMailer.deliver_workflow_notification( + [assignment.user], @dmsf_workflow, revision, :text_email_subject_requires_approval, :text_email_finished_step, - :text_email_to_proceed).deliver + :text_email_to_proceed) end end to = User.find_by(id: revision.dmsf_workflow_assigned_by) if to && DmsfMailer.get_notify_users(@project, [revision.dmsf_file], true).include?(to) - DmsfMailer.workflow_notification( - to, + DmsfMailer.deliver_workflow_notification( + [to], @dmsf_workflow, revision, :text_email_subject_updated, :text_email_finished_step_short, - :text_email_to_see_status).deliver + :text_email_to_see_status) end if Setting.plugin_redmine_dmsf['dmsf_display_notified_recipients'] recipients = assignments.collect{ |a| a.user } diff --git a/app/helpers/dmsf_upload_helper.rb b/app/helpers/dmsf_upload_helper.rb index 4c148a7e..1b44374d 100644 --- a/app/helpers/dmsf_upload_helper.rb +++ b/app/helpers/dmsf_upload_helper.rb @@ -24,9 +24,9 @@ module DmsfUploadHelper def self.commit_files_internal(commited_files, project, folder, controller = nil) failed_uploads = [] files = [] - if commited_files && commited_files.is_a?(Hash) + if commited_files failed_uploads = [] - commited_files.each_value do |commited_file| + commited_files.each do |_, commited_file| name = commited_file[:name] new_revision = DmsfFileRevision.new file = DmsfFile.visible.find_file_by_name(project, folder, name) @@ -140,10 +140,7 @@ module DmsfUploadHelper # Notifications if (folder && folder.notification?) || (!folder && project.dmsf_notification?) begin - recipients = DmsfMailer.get_notify_users(project, files) - recipients.each do |u| - DmsfMailer.files_updated(u, project, files).deliver - end + DmsfMailer.deliver_files_updated(project, files) if Setting.plugin_redmine_dmsf['dmsf_display_notified_recipients'] unless recipients.empty? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') diff --git a/app/models/dmsf_file.rb b/app/models/dmsf_file.rb index 2917abd5..e286bec1 100644 --- a/app/models/dmsf_file.rb +++ b/app/models/dmsf_file.rb @@ -85,7 +85,7 @@ class DmsfFile < ActiveRecord::Base end end - def initialize + def initialize(*args) @project = nil super end diff --git a/app/models/dmsf_mailer.rb b/app/models/dmsf_mailer.rb index eee3ebdc..771a167f 100644 --- a/app/models/dmsf_mailer.rb +++ b/app/models/dmsf_mailer.rb @@ -24,6 +24,13 @@ require 'mailer' class DmsfMailer < Mailer layout 'mailer' + def self.deliver_files_updated(project, files) + users = get_notify_users(project, files) + users.each do |user| + files_updated(user, project, files).deliver_later + end + end + def files_updated(user, project, files) if user && project && files.count > 0 files = files.select { |file| file.notify? } @@ -37,6 +44,13 @@ class DmsfMailer < Mailer end end + def self.deliver_files_deleted(project, files) + users = get_notify_users(project, files) + users.each do |user| + files_deleted(user, project, files).deliver_later + end + end + def files_deleted(user, project, files) if user && files.count > 0 files = files.select { |file| file.notify? } @@ -50,7 +64,11 @@ class DmsfMailer < Mailer end end - def send_documents(project, email_params) + def self.deliver_send_documents(project, email_params) + send_documents(email_params[:to], project, email_params).deliver_later + end + + def send_documents(user, project, email_params) redmine_headers 'Project' => project.identifier if project @body = email_params[:body] @links_only = email_params[:links_only] == '1' @@ -63,10 +81,16 @@ class DmsfMailer < Mailer zipped_content_data = open(email_params[:zipped_content], 'rb') { |io| io.read } attachments['Documents.zip'] = { :content_type => 'application/zip', :content => zipped_content_data } end - mail :to => email_params[:to], :cc => email_params[:cc], + mail :to => user, :cc => email_params[:cc], :subject => email_params[:subject], 'From' => email_params[:from], 'Reply-To' => email_params[:reply_to] end + def self.deliver_workflow_notification(users, workflow, revision, subject_id, text1_id, text2_id, notice = nil) + users.each do |user| + workflow_notification(user, workflow, revision, subject_id.to_s, text1_id.to_s, text2_id.to_s, notice).deliver_later + end + end + def workflow_notification(user, workflow, revision, subject_id, text1_id, text2_id, notice = nil) if user && workflow && revision if revision.dmsf_file && revision.dmsf_file.project diff --git a/app/models/dmsf_workflow.rb b/app/models/dmsf_workflow.rb index 8195ea7a..85432d1b 100644 --- a/app/models/dmsf_workflow.rb +++ b/app/models/dmsf_workflow.rb @@ -195,15 +195,13 @@ class DmsfWorkflow < ActiveRecord::Base recipients = assignments.collect{ |a| a.user } recipients.uniq! recipients = recipients & DmsfMailer.get_notify_users(project, [revision.dmsf_file], true) - recipients.each do |user| - DmsfMailer.workflow_notification( - user, + DmsfMailer.deliver_workflow_notification( + recipients, self, revision, :text_email_subject_started, :text_email_started, - :text_email_to_proceed).deliver - end + :text_email_to_proceed) if Setting.plugin_redmine_dmsf['dmsf_display_notified_recipients'] unless recipients.blank? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') diff --git a/db/migrate/01_create_hierarchy.rb b/db/migrate/01_create_hierarchy.rb index a6317979..49ef8ae9 100644 --- a/db/migrate/01_create_hierarchy.rb +++ b/db/migrate/01_create_hierarchy.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class CreateHierarchy < ActiveRecord::Migration +class CreateHierarchy < ActiveRecord::Migration[4.2] def change create_table :dmsf_folders do |t| diff --git a/db/migrate/02_dmsf_normalization.rb b/db/migrate/02_dmsf_normalization.rb index 0fe7ae59..f8023026 100644 --- a/db/migrate/02_dmsf_normalization.rb +++ b/db/migrate/02_dmsf_normalization.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class DmsfNormalization < ActiveRecord::Migration +class DmsfNormalization < ActiveRecord::Migration[4.2] def up rename_column :dmsf_folders, :name, :title diff --git a/db/migrate/03_dmsf_0_8_0.rb b/db/migrate/03_dmsf_0_8_0.rb index f9f9dfe2..0f1387cb 100644 --- a/db/migrate/03_dmsf_0_8_0.rb +++ b/db/migrate/03_dmsf_0_8_0.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Dmsf080 < ActiveRecord::Migration +class Dmsf080 < ActiveRecord::Migration[4.2] def change add_column :projects, :dmsf_description, :text diff --git a/db/migrate/04_dmsf_0_9_0.rb b/db/migrate/04_dmsf_0_9_0.rb index 872b75ec..047c0634 100644 --- a/db/migrate/04_dmsf_0_9_0.rb +++ b/db/migrate/04_dmsf_0_9_0.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Dmsf090 < ActiveRecord::Migration +class Dmsf090 < ActiveRecord::Migration[4.2] def up add_column :members, :dmsf_mail_notification, :boolean diff --git a/db/migrate/05_dmsf_0_9_0_1.rb b/db/migrate/05_dmsf_0_9_0_1.rb index 1f9e5595..af35f0af 100644 --- a/db/migrate/05_dmsf_0_9_0_1.rb +++ b/db/migrate/05_dmsf_0_9_0_1.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Dmsf0901 < ActiveRecord::Migration +class Dmsf0901 < ActiveRecord::Migration[4.2] def change create_table :dmsf_file_revision_accesses do |t| diff --git a/db/migrate/06_dmsf_1_2_0.rb b/db/migrate/06_dmsf_1_2_0.rb index bd7b8afe..33424599 100644 --- a/db/migrate/06_dmsf_1_2_0.rb +++ b/db/migrate/06_dmsf_1_2_0.rb @@ -19,7 +19,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Dmsf120 < ActiveRecord::Migration +class Dmsf120 < ActiveRecord::Migration[4.2] def up add_column :dmsf_file_revisions, :project_id, :integer, null: true diff --git a/db/migrate/07_dmsf_1_4_4.rb b/db/migrate/07_dmsf_1_4_4.rb index 6c5ad4b0..48fd0af7 100644 --- a/db/migrate/07_dmsf_1_4_4.rb +++ b/db/migrate/07_dmsf_1_4_4.rb @@ -20,7 +20,7 @@ require 'fileutils' require 'uuidtools' -class Dmsf144 < ActiveRecord::Migration +class Dmsf144 < ActiveRecord::Migration[4.2] class DmsfFileLock < ActiveRecord::Base belongs_to :file, class_name: 'DmsfFile', foreign_key: 'dmsf_file_id' diff --git a/db/migrate/20120822100401_create_dmsf_workflows.rb b/db/migrate/20120822100401_create_dmsf_workflows.rb index 8fe30932..3661c38f 100644 --- a/db/migrate/20120822100401_create_dmsf_workflows.rb +++ b/db/migrate/20120822100401_create_dmsf_workflows.rb @@ -19,7 +19,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class CreateDmsfWorkflows < ActiveRecord::Migration +class CreateDmsfWorkflows < ActiveRecord::Migration[4.2] def up create_table :dmsf_workflows do |t| diff --git a/db/migrate/20120822100402_create_dmsf_workflow_steps.rb b/db/migrate/20120822100402_create_dmsf_workflow_steps.rb index b72236fd..2dd9e0fa 100644 --- a/db/migrate/20120822100402_create_dmsf_workflow_steps.rb +++ b/db/migrate/20120822100402_create_dmsf_workflow_steps.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class CreateDmsfWorkflowSteps < ActiveRecord::Migration +class CreateDmsfWorkflowSteps < ActiveRecord::Migration[4.2] def change create_table :dmsf_workflow_steps do |t| diff --git a/db/migrate/20120822100403_create_dmsf_workflow_step_assignments.rb b/db/migrate/20120822100403_create_dmsf_workflow_step_assignments.rb index 435b8a5c..42523cf6 100644 --- a/db/migrate/20120822100403_create_dmsf_workflow_step_assignments.rb +++ b/db/migrate/20120822100403_create_dmsf_workflow_step_assignments.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class CreateDmsfWorkflowStepAssignments < ActiveRecord::Migration +class CreateDmsfWorkflowStepAssignments < ActiveRecord::Migration[4.2] def change create_table :dmsf_workflow_step_assignments do |t| diff --git a/db/migrate/20120822100404_create_dmsf_workflow_step_actions.rb b/db/migrate/20120822100404_create_dmsf_workflow_step_actions.rb index 69b6b510..7433e272 100644 --- a/db/migrate/20120822100404_create_dmsf_workflow_step_actions.rb +++ b/db/migrate/20120822100404_create_dmsf_workflow_step_actions.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class CreateDmsfWorkflowStepActions < ActiveRecord::Migration +class CreateDmsfWorkflowStepActions < ActiveRecord::Migration[4.2] def change create_table :dmsf_workflow_step_actions do |t| diff --git a/db/migrate/20130819013955_update_projects.rb b/db/migrate/20130819013955_update_projects.rb index f93f3fc1..a3f07ab5 100644 --- a/db/migrate/20130819013955_update_projects.rb +++ b/db/migrate/20130819013955_update_projects.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class UpdateProjects < ActiveRecord::Migration +class UpdateProjects < ActiveRecord::Migration[4.2] def change # DMSF - project's root folder notification diff --git a/db/migrate/20131108141401_add_index_to_dmsf_files.rb b/db/migrate/20131108141401_add_index_to_dmsf_files.rb index 917b7c2c..a4ccf91c 100644 --- a/db/migrate/20131108141401_add_index_to_dmsf_files.rb +++ b/db/migrate/20131108141401_add_index_to_dmsf_files.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddIndexToDmsfFiles < ActiveRecord::Migration +class AddIndexToDmsfFiles < ActiveRecord::Migration[4.2] def change add_index :dmsf_files, :project_id diff --git a/db/migrate/20131108141402_add_index_to_dmsf_folders.rb b/db/migrate/20131108141402_add_index_to_dmsf_folders.rb index 8df3c40a..be1c3e29 100644 --- a/db/migrate/20131108141402_add_index_to_dmsf_folders.rb +++ b/db/migrate/20131108141402_add_index_to_dmsf_folders.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddIndexToDmsfFolders < ActiveRecord::Migration +class AddIndexToDmsfFolders < ActiveRecord::Migration[4.2] def change add_index :dmsf_folders, :project_id diff --git a/db/migrate/20131113141401_add_index_to_dmsf_file_revision.rb b/db/migrate/20131113141401_add_index_to_dmsf_file_revision.rb index e250fe69..61dfc6f5 100644 --- a/db/migrate/20131113141401_add_index_to_dmsf_file_revision.rb +++ b/db/migrate/20131113141401_add_index_to_dmsf_file_revision.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddIndexToDmsfFileRevision < ActiveRecord::Migration +class AddIndexToDmsfFileRevision < ActiveRecord::Migration[4.2] def change add_index :dmsf_file_revisions, :dmsf_file_id diff --git a/db/migrate/20131113141402_add_index_to_dmsf_lock.rb b/db/migrate/20131113141402_add_index_to_dmsf_lock.rb index 2184eb1b..ba51c200 100644 --- a/db/migrate/20131113141402_add_index_to_dmsf_lock.rb +++ b/db/migrate/20131113141402_add_index_to_dmsf_lock.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddIndexToDmsfLock < ActiveRecord::Migration +class AddIndexToDmsfLock < ActiveRecord::Migration[4.2] def change add_index :dmsf_locks, :entity_id diff --git a/db/migrate/20131113141403_create_dmsf_links.rb b/db/migrate/20131113141403_create_dmsf_links.rb index 70686ba6..45d6cd56 100644 --- a/db/migrate/20131113141403_create_dmsf_links.rb +++ b/db/migrate/20131113141403_create_dmsf_links.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class CreateDmsfLinks < ActiveRecord::Migration +class CreateDmsfLinks < ActiveRecord::Migration[4.2] def change create_table :dmsf_links do |t| diff --git a/db/migrate/20140314132501_notifications_on.rb b/db/migrate/20140314132501_notifications_on.rb index 91973556..8f190207 100644 --- a/db/migrate/20140314132501_notifications_on.rb +++ b/db/migrate/20140314132501_notifications_on.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class NotificationsOn < ActiveRecord::Migration +class NotificationsOn < ActiveRecord::Migration[4.2] def up # Switch on the default notifications for new projects and folders diff --git a/db/migrate/20140519133201_trash_bin.rb b/db/migrate/20140519133201_trash_bin.rb index 0ceb8ea2..e9ce27f2 100644 --- a/db/migrate/20140519133201_trash_bin.rb +++ b/db/migrate/20140519133201_trash_bin.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class TrashBin < ActiveRecord::Migration +class TrashBin < ActiveRecord::Migration[4.2] def up # DMSF - project's root folder notification diff --git a/db/migrate/20141013102501_remove_project_from_revision.rb b/db/migrate/20141013102501_remove_project_from_revision.rb index 7a154bf9..c5fdd785 100644 --- a/db/migrate/20141013102501_remove_project_from_revision.rb +++ b/db/migrate/20141013102501_remove_project_from_revision.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class RemoveProjectFromRevision < ActiveRecord::Migration +class RemoveProjectFromRevision < ActiveRecord::Migration[4.2] def up remove_column :dmsf_file_revisions, :project_id diff --git a/db/migrate/20141015132701_remove_folder_from_revision.rb b/db/migrate/20141015132701_remove_folder_from_revision.rb index 17d1df67..ef30cbc4 100644 --- a/db/migrate/20141015132701_remove_folder_from_revision.rb +++ b/db/migrate/20141015132701_remove_folder_from_revision.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class RemoveFolderFromRevision < ActiveRecord::Migration +class RemoveFolderFromRevision < ActiveRecord::Migration[4.2] def up remove_column :dmsf_file_revisions, :dmsf_folder_id diff --git a/db/migrate/20141205143001_remove_uniqueness_from_wf.rb b/db/migrate/20141205143001_remove_uniqueness_from_wf.rb index 878d5c22..18fce0be 100644 --- a/db/migrate/20141205143001_remove_uniqueness_from_wf.rb +++ b/db/migrate/20141205143001_remove_uniqueness_from_wf.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class RemoveUniquenessFromWf < ActiveRecord::Migration +class RemoveUniquenessFromWf < ActiveRecord::Migration[4.2] def up remove_index(:dmsf_workflows, :name) if index_exists?(:dmsf_workflows, :name) diff --git a/db/migrate/20150120152101_notifications_nullable.rb b/db/migrate/20150120152101_notifications_nullable.rb index c58efbe7..e0e27b81 100644 --- a/db/migrate/20150120152101_notifications_nullable.rb +++ b/db/migrate/20150120152101_notifications_nullable.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class NotificationsNullable < ActiveRecord::Migration +class NotificationsNullable < ActiveRecord::Migration[4.2] def up change_column :projects, :dmsf_notification, :boolean, default: false, null: true diff --git a/db/migrate/20150130052716_add_external.rb b/db/migrate/20150130052716_add_external.rb index c736f0a3..2fe116b6 100644 --- a/db/migrate/20150130052716_add_external.rb +++ b/db/migrate/20150130052716_add_external.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddExternal < ActiveRecord::Migration +class AddExternal < ActiveRecord::Migration[4.2] def up change_column :dmsf_links, :target_id, :integer, null: true diff --git a/db/migrate/20150202010301_add_user_to_links.rb b/db/migrate/20150202010301_add_user_to_links.rb index ed1dc111..13fc4333 100644 --- a/db/migrate/20150202010301_add_user_to_links.rb +++ b/db/migrate/20150202010301_add_user_to_links.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddUserToLinks < ActiveRecord::Migration +class AddUserToLinks < ActiveRecord::Migration[4.2] def change add_column :dmsf_links, :user_id, :integer diff --git a/db/migrate/20150910153701_title_not_null.rb b/db/migrate/20150910153701_title_not_null.rb index 80577366..14be804a 100644 --- a/db/migrate/20150910153701_title_not_null.rb +++ b/db/migrate/20150910153701_title_not_null.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class TitleNotNull < ActiveRecord::Migration +class TitleNotNull < ActiveRecord::Migration[4.2] def up change_column :dmsf_file_revisions, :title, :string, null: false diff --git a/db/migrate/20151020141801_large_files.rb b/db/migrate/20151020141801_large_files.rb index fd4b0203..fe4442bc 100644 --- a/db/migrate/20151020141801_large_files.rb +++ b/db/migrate/20151020141801_large_files.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class LargeFiles < ActiveRecord::Migration +class LargeFiles < ActiveRecord::Migration[4.2] def up change_column :dmsf_file_revisions, :size, :bigint, null: true diff --git a/db/migrate/20151209100001_title_format.rb b/db/migrate/20151209100001_title_format.rb index 6fd80d30..8cd48d09 100644 --- a/db/migrate/20151209100001_title_format.rb +++ b/db/migrate/20151209100001_title_format.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class TitleFormat < ActiveRecord::Migration +class TitleFormat < ActiveRecord::Migration[4.2] def change add_column :members, :title_format, :text, null: true, limit: 100 diff --git a/db/migrate/20160215125801_approval_workflow_status.rb b/db/migrate/20160215125801_approval_workflow_status.rb index 37877d4d..08c7b71d 100644 --- a/db/migrate/20160215125801_approval_workflow_status.rb +++ b/db/migrate/20160215125801_approval_workflow_status.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class ApprovalWorkflowStatus < ActiveRecord::Migration +class ApprovalWorkflowStatus < ActiveRecord::Migration[4.2] def up add_column :dmsf_workflows, :status, :integer, null: false, diff --git a/db/migrate/20160217133001_status_deleted.rb b/db/migrate/20160217133001_status_deleted.rb index 34cda511..2e539fb5 100644 --- a/db/migrate/20160217133001_status_deleted.rb +++ b/db/migrate/20160217133001_status_deleted.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class StatusDeleted < ActiveRecord::Migration +class StatusDeleted < ActiveRecord::Migration[4.2] def up case ActiveRecord::Base.connection.adapter_name.downcase diff --git a/db/migrate/20160222140401_approval_workflow_std_fields.rb b/db/migrate/20160222140401_approval_workflow_std_fields.rb index ffdea6dc..fa3fdc00 100644 --- a/db/migrate/20160222140401_approval_workflow_std_fields.rb +++ b/db/migrate/20160222140401_approval_workflow_std_fields.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class ApprovalWorkflowStdFields < ActiveRecord::Migration +class ApprovalWorkflowStdFields < ActiveRecord::Migration[4.2] def up add_column :dmsf_workflows, :updated_on, :timestamp diff --git a/db/migrate/20160421150501_add_digest_to_revision.rb b/db/migrate/20160421150501_add_digest_to_revision.rb index 6500f8be..b103c951 100644 --- a/db/migrate/20160421150501_add_digest_to_revision.rb +++ b/db/migrate/20160421150501_add_digest_to_revision.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddDigestToRevision < ActiveRecord::Migration +class AddDigestToRevision < ActiveRecord::Migration[4.2] def up add_column :dmsf_file_revisions, :digest, :string, limit: 40, default: '', null: false diff --git a/db/migrate/20161223133200_create_dmsf_public_urls.rb b/db/migrate/20161223133200_create_dmsf_public_urls.rb index 8575be95..cd5447c7 100644 --- a/db/migrate/20161223133200_create_dmsf_public_urls.rb +++ b/db/migrate/20161223133200_create_dmsf_public_urls.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class CreateDmsfPublicUrls < ActiveRecord::Migration +class CreateDmsfPublicUrls < ActiveRecord::Migration[4.2] def change create_table :dmsf_public_urls do |t| diff --git a/db/migrate/20170103164701_add_name_to_appoval_workflow_step.rb b/db/migrate/20170103164701_add_name_to_appoval_workflow_step.rb index ece8afdf..c39e4a8d 100644 --- a/db/migrate/20170103164701_add_name_to_appoval_workflow_step.rb +++ b/db/migrate/20170103164701_add_name_to_appoval_workflow_step.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddNameToAppovalWorkflowStep < ActiveRecord::Migration +class AddNameToAppovalWorkflowStep < ActiveRecord::Migration[4.2] def change add_column :dmsf_workflow_steps, :name, :string, limit: 30, null: true diff --git a/db/migrate/20170118142001_dmsf_file_container.rb b/db/migrate/20170118142001_dmsf_file_container.rb index 66c95096..4528b643 100644 --- a/db/migrate/20170118142001_dmsf_file_container.rb +++ b/db/migrate/20170118142001_dmsf_file_container.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class DmsfFileContainer < ActiveRecord::Migration +class DmsfFileContainer < ActiveRecord::Migration[4.2] def up remove_index :dmsf_files, :project_id diff --git a/db/migrate/20170204214753_add_revision_to_dmsf_lock.rb b/db/migrate/20170204214753_add_revision_to_dmsf_lock.rb index 58a2ce2e..faa44ae7 100644 --- a/db/migrate/20170204214753_add_revision_to_dmsf_lock.rb +++ b/db/migrate/20170204214753_add_revision_to_dmsf_lock.rb @@ -19,7 +19,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddRevisionToDmsfLock < ActiveRecord::Migration +class AddRevisionToDmsfLock < ActiveRecord::Migration[4.2] def change add_column :dmsf_locks, :revision, :integer, null: true diff --git a/db/migrate/20170214153223_add_dmsf_file_last_revision_id_to_dmsf_lock.rb b/db/migrate/20170214153223_add_dmsf_file_last_revision_id_to_dmsf_lock.rb index 1e962b73..19f64be1 100644 --- a/db/migrate/20170214153223_add_dmsf_file_last_revision_id_to_dmsf_lock.rb +++ b/db/migrate/20170214153223_add_dmsf_file_last_revision_id_to_dmsf_lock.rb @@ -19,7 +19,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddDmsfFileLastRevisionIdToDmsfLock < ActiveRecord::Migration +class AddDmsfFileLastRevisionIdToDmsfLock < ActiveRecord::Migration[4.2] def up rename_column :dmsf_locks, :revision, :dmsf_file_last_revision_id diff --git a/db/migrate/20170217141601_add_dmsf_not_inheritable_to_custom_fields.rb b/db/migrate/20170217141601_add_dmsf_not_inheritable_to_custom_fields.rb index d40ff6a9..08a8a052 100644 --- a/db/migrate/20170217141601_add_dmsf_not_inheritable_to_custom_fields.rb +++ b/db/migrate/20170217141601_add_dmsf_not_inheritable_to_custom_fields.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddDmsfNotInheritableToCustomFields < ActiveRecord::Migration +class AddDmsfNotInheritableToCustomFields < ActiveRecord::Migration[4.2] def change add_column :custom_fields, :dmsf_not_inheritable, :boolean, null: true diff --git a/db/migrate/20170323131231_dmsf_description_limit.rb b/db/migrate/20170323131231_dmsf_description_limit.rb index a6e2ffc9..9e720736 100644 --- a/db/migrate/20170323131231_dmsf_description_limit.rb +++ b/db/migrate/20170323131231_dmsf_description_limit.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class DmsfDescriptionLimit < ActiveRecord::Migration +class DmsfDescriptionLimit < ActiveRecord::Migration[4.2] def up change_column :projects, :dmsf_description, :text, null: true, limit: 65535 diff --git a/db/migrate/20170330131901_create_dmsf_folder_permissions.rb b/db/migrate/20170330131901_create_dmsf_folder_permissions.rb index e1c5445d..4429bbb0 100644 --- a/db/migrate/20170330131901_create_dmsf_folder_permissions.rb +++ b/db/migrate/20170330131901_create_dmsf_folder_permissions.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class CreateDmsfFolderPermissions < ActiveRecord::Migration +class CreateDmsfFolderPermissions < ActiveRecord::Migration[4.2] def change create_table :dmsf_folder_permissions do |t| @@ -29,4 +29,4 @@ class CreateDmsfFolderPermissions < ActiveRecord::Migration add_index :dmsf_folder_permissions, :dmsf_folder_id end -end \ No newline at end of file +end diff --git a/db/migrate/20170421101901_dmsf_file_container_rollback.rb b/db/migrate/20170421101901_dmsf_file_container_rollback.rb index f6ed7f94..4480cac5 100644 --- a/db/migrate/20170421101901_dmsf_file_container_rollback.rb +++ b/db/migrate/20170421101901_dmsf_file_container_rollback.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class DmsfFileContainerRollback < ActiveRecord::Migration +class DmsfFileContainerRollback < ActiveRecord::Migration[4.2] def up # Add system folder_flag to dmsf_folders diff --git a/db/migrate/20170422104901_migrate_documents.rb b/db/migrate/20170422104901_migrate_documents.rb index 027a32c6..baec86be 100644 --- a/db/migrate/20170422104901_migrate_documents.rb +++ b/db/migrate/20170422104901_migrate_documents.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class MigrateDocuments < ActiveRecord::Migration +class MigrateDocuments < ActiveRecord::Migration[4.2] def up # Migrate all documents from dmsf/p_{project identifier} to dmsf/{year}/{month} diff --git a/db/migrate/20170526144701_dmsf_attachable.rb b/db/migrate/20170526144701_dmsf_attachable.rb index f1b390d1..fd33aa7d 100644 --- a/db/migrate/20170526144701_dmsf_attachable.rb +++ b/db/migrate/20170526144701_dmsf_attachable.rb @@ -18,14 +18,14 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class DmsfAttachable < ActiveRecord::Migration +class DmsfAttachable < ActiveRecord::Migration[4.2] def up # DMSF - project's root folder notification add_column :projects, :dmsf_act_as_attachable, :integer, default: 1, null: false Project.update_all dmsf_act_as_attachable: 1 end - + def down remove_column :projects, :dmsf_act_as_attachable end diff --git a/db/migrate/20171027124101_change_revision_digest_limit_to_64.rb b/db/migrate/20171027124101_change_revision_digest_limit_to_64.rb index ca94c18c..a4cb84f3 100644 --- a/db/migrate/20171027124101_change_revision_digest_limit_to_64.rb +++ b/db/migrate/20171027124101_change_revision_digest_limit_to_64.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class ChangeRevisionDigestLimitTo64 < ActiveRecord::Migration +class ChangeRevisionDigestLimitTo64 < ActiveRecord::Migration[4.2] def up change_column :dmsf_file_revisions, :digest, :string, limit: 64 diff --git a/db/migrate/20171110155901_add_index_to_dmsf_folder.rb b/db/migrate/20171110155901_add_index_to_dmsf_folder.rb index 07ba83b6..55dac6ce 100644 --- a/db/migrate/20171110155901_add_index_to_dmsf_folder.rb +++ b/db/migrate/20171110155901_add_index_to_dmsf_folder.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class AddIndexToDmsfFolder < ActiveRecord::Migration +class AddIndexToDmsfFolder < ActiveRecord::Migration[4.2] def change add_index :dmsf_folders, :dmsf_folder_id diff --git a/db/migrate/20180216152501_rename_title_format.rb b/db/migrate/20180216152501_rename_title_format.rb index 458b7337..aa337cdd 100644 --- a/db/migrate/20180216152501_rename_title_format.rb +++ b/db/migrate/20180216152501_rename_title_format.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class RenameTitleFormat < ActiveRecord::Migration +class RenameTitleFormat < ActiveRecord::Migration[4.2] def up rename_column :members, :title_format, :dmsf_title_format diff --git a/db/migrate/20180903132101_fast_links.rb b/db/migrate/20180903132101_fast_links.rb index 81c3467c..f0627023 100644 --- a/db/migrate/20180903132101_fast_links.rb +++ b/db/migrate/20180903132101_fast_links.rb @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class FastLinks < ActiveRecord::Migration +class FastLinks < ActiveRecord::Migration[4.2] def change add_column :members, :dmsf_fast_links, :boolean, default: false, null: false diff --git a/init.rb b/init.rb index fc069e5d..c54e3288 100644 --- a/init.rb +++ b/init.rb @@ -34,7 +34,7 @@ Redmine::Plugin.register :redmine_dmsf do description 'Document Management System Features' version '1.6.2' - requires_redmine version_or_higher: '3.4.0' + requires_redmine version_or_higher: '4.0.0' settings partial: 'settings/dmsf_settings', default: { diff --git a/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb b/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb index 78ae7081..e9a25705 100644 --- a/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb +++ b/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb @@ -116,7 +116,7 @@ module RedmineDmsf end # Attach DMS documents uploaded_files = params[:dmsf_attachments] - if uploaded_files && uploaded_files.is_a?(Hash) + if uploaded_files system_folder = issue.system_folder(true) uploaded_files.each do |key, uploaded_file| upload = DmsfUpload.create_from_uploaded_attachment(issue.project, system_folder, uploaded_file) diff --git a/lib/redmine_dmsf/patches/easy_crm_cases_controller_patch.rb b/lib/redmine_dmsf/patches/easy_crm_cases_controller_patch.rb index 19669d58..86439d98 100644 --- a/lib/redmine_dmsf/patches/easy_crm_cases_controller_patch.rb +++ b/lib/redmine_dmsf/patches/easy_crm_cases_controller_patch.rb @@ -32,7 +32,7 @@ module RedmineDmsf easy_crm_cases.each do |easy_crm_case| # Attach DMS documents uploaded_files = params[:dmsf_attachments] - if uploaded_files && uploaded_files.is_a?(Hash) + if uploaded_files system_folder = easy_crm_case.system_folder(true) uploaded_files.each do |key, uploaded_file| upload = DmsfUpload.create_from_uploaded_attachment(easy_crm_case.project, system_folder, uploaded_file) diff --git a/lib/redmine_dmsf/webdav/dmsf_resource.rb b/lib/redmine_dmsf/webdav/dmsf_resource.rb index ba38136d..6b456c8d 100644 --- a/lib/redmine_dmsf/webdav/dmsf_resource.rb +++ b/lib/redmine_dmsf/webdav/dmsf_resource.rb @@ -199,10 +199,7 @@ module RedmineDmsf destroy = false end if file.delete(destroy) - recipients = DmsfMailer.get_notify_users(project, [file]) - recipients.each do |u| - DmsfMailer.files_deleted(u, project, [file]).deliver - end + DmsfMailer.deliver_files_deleted(project, [file]) NoContent else Conflict @@ -599,10 +596,7 @@ module RedmineDmsf new_revision.create_digest new_revision.save # Notifications - recipients = DmsfMailer.get_notify_users(project, [f]) - recipients.each do |u| - DmsfMailer.files_updated(u, project, [f]).deliver - end + DmsfMailer.deliver_files_updated(project, [f]) else raise InternalServerError end diff --git a/lib/tasks/dmsf_alert_approvals.rake b/lib/tasks/dmsf_alert_approvals.rake index d6a80874..489f4f34 100644 --- a/lib/tasks/dmsf_alert_approvals.rake +++ b/lib/tasks/dmsf_alert_approvals.rake @@ -49,13 +49,13 @@ class DmsfAlertApprovals if dry_run puts "#{assignment.user.name} <#{assignment.user.mail}>" else - DmsfMailer.workflow_notification( - assignment.user, + DmsfMailer.deliver_workflow_notification( + [assignment.user], workflow, revision, :text_email_subject_requires_approval, :text_email_finished_step, - :text_email_to_proceed).deliver + :text_email_to_proceed) end end end diff --git a/test/ci/redmine_install.sh b/test/ci/redmine_install.sh index 5f6104c3..4d772be0 100644 --- a/test/ci/redmine_install.sh +++ b/test/ci/redmine_install.sh @@ -21,7 +21,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. export REDMINE_GIT_REPO=git://github.com/redmine/redmine.git -export REDMINE_GIT_TAG=3.4-stable +export REDMINE_GIT_TAG=4.0-stable clone() { diff --git a/test/functional/dmsf_context_menus_controller_test.rb b/test/functional/dmsf_context_menus_controller_test.rb index f6791c21..d41e8e50 100644 --- a/test/functional/dmsf_context_menus_controller_test.rb +++ b/test/functional/dmsf_context_menus_controller_test.rb @@ -44,7 +44,7 @@ class DmsfContextMenusControllerTest < RedmineDmsf::Test::TestCase end def test_dmsf - get :dmsf, :id => @project1.id, :ids => ["file-#{@file1.id}"] + get :dmsf, :params => {:id => @project1.id, :ids => ["file-#{@file1.id}"]} assert_response :success assert_select 'a.icon-edit', :text => l(:button_edit) assert_select 'a.icon-del', :text => l(:button_delete) @@ -53,7 +53,7 @@ class DmsfContextMenusControllerTest < RedmineDmsf::Test::TestCase end def test_dmsf_no_edit - get :dmsf, :id => @project1.id, :ids => ["folder-#{@folder1.id}"] + get :dmsf, :params => {:id => @project1.id, :ids => ["folder-#{@folder1.id}"]} assert_response :success assert_select 'a.icon-edit', :text => l(:button_edit), :count => 0 assert_select 'a.icon-del', :text => l(:button_delete) @@ -62,7 +62,7 @@ class DmsfContextMenusControllerTest < RedmineDmsf::Test::TestCase end def test_trash - get :trash, :id => @project1.id, :ids => ["file-#{@file1.id}"] + get :trash, :params => {:id => @project1.id, :ids => ["file-#{@file1.id}"]} assert_response :success assert_select 'a.icon-cancel', :text => l(:title_restore) assert_select 'a.icon-del', :text => l(:button_delete) diff --git a/test/functional/dmsf_controller_test.rb b/test/functional/dmsf_controller_test.rb index 54660699..32e32eef 100644 --- a/test/functional/dmsf_controller_test.rb +++ b/test/functional/dmsf_controller_test.rb @@ -74,7 +74,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_edit_folder_forbidden # Missing permissions - get :edit, :id => @project, :folder_id => @folder1 + get :edit, :params => {:id => @project, :folder_id => @folder1} assert_response :forbidden end @@ -82,7 +82,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase # Permissions OK @role.add_permission! :view_dmsf_folders @role.add_permission! :folder_manipulation - get :edit, :id => @project, :folder_id => @folder1 + get :edit, :params => {:id => @project, :folder_id => @folder1} assert_response :success assert_select 'label', { :text => @custom_field.name } assert_select 'option', { :value => @custom_value.value } @@ -90,28 +90,28 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_trash_forbidden # Missing permissions - get :trash, :id => @project + get :trash, :params => {:id => @project} assert_response :forbidden end def test_trash_allowed # Permissions OK @role.add_permission! :file_delete - get :trash, :id => @project + get :trash, :params => {:id => @project} assert_response :success assert_select 'h2', { :text => l(:link_trash_bin) } end def test_delete_forbidden # Missing permissions - get :delete, :id => @project, :folder_id => @folder1.id, :commit => false + get :delete, :params => {:id => @project, :folder_id => @folder1.id, :commit => false} assert_response :forbidden end def test_delete_not_empty # Permissions OK but the folder is not empty @role.add_permission! :folder_manipulation - get :delete, :id => @project, :folder_id => @folder1.id, :commit => false + get :delete, :params => {:id => @project, :folder_id => @folder1.id, :commit => false} assert_response :redirect assert_include l(:error_folder_is_not_empty), flash[:error] end @@ -119,7 +119,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_delete_locked # Permissions OK but the folder is locked @role.add_permission! :folder_manipulation - get :delete, :id => @project, :folder_id => @folder2.id, :commit => false + get :delete, :params => {:id => @project, :folder_id => @folder2.id, :commit => false} assert_response :redirect assert_include l(:error_folder_is_locked), flash[:error] end @@ -127,7 +127,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_delete_ok # Empty and not locked folder @role.add_permission! :folder_manipulation - get :delete, :id => @project, :folder_id => @folder4.id, :commit => false + get :delete, :params => {:id => @project, :folder_id => @folder4.id, :commit => false} assert_response :redirect end @@ -135,7 +135,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase # Missing permissions @folder4.deleted = 1 @folder4.save - get :restore, :id => @project, :folder_id => @folder4.id + get :restore, :params => {:id => @project, :folder_id => @folder4.id} assert_response :forbidden end @@ -145,14 +145,14 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase @role.add_permission! :folder_manipulation @folder4.deleted = 1 @folder4.save - get :restore, :id => @project, :folder_id => @folder4.id + get :restore, :params => {:id => @project, :folder_id => @folder4.id} assert_response :redirect end def test_delete_restore_entries_forbidden # Missing permissions - get :entries_operation, :id => @project, :delete_entries => 'Delete', - :ids => ["folder-#{@folder1.id}", "file-#{@file1.id}", "folder-link-#{@folder_link1.id}", "file-link-#{@file_link2.id}"] + get :entries_operation, :params => {:id => @project, :delete_entries => 'Delete', + :ids => ["folder-#{@folder1.id}", "file-#{@file1.id}", "folder-link-#{@folder_link1.id}", "file-link-#{@file_link2.id}"]} assert_response :forbidden end @@ -160,8 +160,8 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase # Permissions OK but the folder is not empty @request.env['HTTP_REFERER'] = dmsf_folder_path(:id => @project.id) @role.add_permission! :view_dmsf_files - get :entries_operation, :id => @project, :delete_entries => 'Delete', - :ids => ["folder-#{@folder1.id}", "file-#{@file1.id}", "folder-link-#{@folder_link1.id}", "file-link-#{@file_link2.id}"] + get :entries_operation, :params => {:id => @project, :delete_entries => 'Delete', + :ids => ["folder-#{@folder1.id}", "file-#{@file1.id}", "folder-link-#{@folder_link1.id}", "file-link-#{@file_link2.id}"]} assert_response :redirect assert_equal flash[:error].to_s, l(:error_folder_is_not_empty) end @@ -171,8 +171,8 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase @request.env['HTTP_REFERER'] = dmsf_folder_path(:id => @project.id) @role.add_permission! :view_dmsf_files flash[:error] = nil - get :entries_operation, :id => @project, :delete_entries => 'Delete', - :ids => ["file-#{@file1.id}", "file-link-#{@file_link2.id}"] + get :entries_operation, :params => {:id => @project, :delete_entries => 'Delete', + :ids => ["file-#{@file1.id}", "file-link-#{@file_link2.id}"]} assert_response :redirect assert_nil flash[:error] end @@ -181,8 +181,8 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase # Restore @role.add_permission! :view_dmsf_files @request.env['HTTP_REFERER'] = trash_dmsf_path(:id => @project.id) - get :entries_operation, :id => @project, :restore_entries => 'Restore', - :ids => ["file-#{@file1.id}", "file-link-#{@file_link2.id}"] + get :entries_operation, :params => {:id => @project, :restore_entries => 'Restore', + :ids => ["file-#{@file1.id}", "file-link-#{@file_link2.id}"]} assert_response :redirect assert_nil flash[:error] end @@ -190,7 +190,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_show @role.add_permission! :view_dmsf_files @role.add_permission! :view_dmsf_folders - get :show, :id => @project.id + get :show, :params => {:id => @project.id} assert_response :success assert_select 'tr.dmsf_tree', :count => 0 end @@ -198,7 +198,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_show_tag @role.add_permission! :view_dmsf_files @role.add_permission! :view_dmsf_folders - get :show, :id => @project.id, :custom_field_id => 21, :custom_value => 'Technical documentation' + get :show, :params => {:id => @project.id, :custom_field_id => 21, :custom_value => 'Technical documentation'} assert_response :success assert_select 'tr.dmsf_tree', :count => 0 end @@ -208,7 +208,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase @role.add_permission! :view_dmsf_folders @manager.pref[:dmsf_tree_view] = '1' @manager.preference.save - get :show, :id => @project.id + get :show, :params => {:id => @project.id} assert_response :success assert_select 'tr.dmsf_tree' end @@ -216,27 +216,27 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_show_csv @role.add_permission! :view_dmsf_files @role.add_permission! :view_dmsf_folders - get :show, id: @project.id, format: 'csv', :settings => { dmsf_columns: %w(id title) } + get :show, :params => {id: @project.id, format: 'csv', :settings => { dmsf_columns: %w(id title) }} assert_response :success assert_equal 'text/csv; header=present', @response.content_type end def test_new_forbidden @role.remove_permission! :folder_manipulation - get :new, :id => @project, :parent_id => nil + get :new, :params => {:id => @project, :parent_id => nil} assert_response :forbidden end def test_new @role.add_permission! :folder_manipulation - get :new, :id => @project, :parent_id => nil + get :new, :params => {:id => @project, :parent_id => nil} assert_response :success end def test_email_entries_email_from Setting.plugin_redmine_dmsf['dmsf_documents_email_from'] = 'karel.picman@kontron.com' @role.add_permission! :view_dmsf_files - get :entries_operation, :id => @project, :email_entries => 'Email', :ids => ["file-#{@file1.id}"] + get :entries_operation, :params => {:id => @project, :email_entries => 'Email', :ids => ["file-#{@file1.id}"]} assert_response :success assert_select "input:match('value', ?)", Setting.plugin_redmine_dmsf['dmsf_documents_email_from'] end @@ -244,49 +244,49 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_email_entries_reply_to Setting.plugin_redmine_dmsf['dmsf_documents_email_reply_to'] = 'karel.picman@kontron.com' @role.add_permission! :view_dmsf_files - get :entries_operation, :id => @project, :email_entries => 'Email', :ids => ["file-#{@file1.id}"] + get :entries_operation, :params => {:id => @project, :email_entries => 'Email', :ids => ["file-#{@file1.id}"]} assert_response :success assert_select "input:match('value', ?)", Setting.plugin_redmine_dmsf['dmsf_documents_email_reply_to'] end def test_email_entries_links_only - Setting.plugin_redmine_dmsf['dmsf_documents_email_links_only'] = true + Setting.plugin_redmine_dmsf['dmsf_documents_email_links_only'] = '1' @role.add_permission! :view_dmsf_files - get :entries_operation, :id => @project, :email_entries => 'Email', :ids => ["file-#{@file1.id}"] + get :entries_operation, :params => {:id => @project, :email_entries => 'Email', :ids => ["file-#{@file1.id}"]} assert_response :success assert_select "input:match('value', ?)", Setting.plugin_redmine_dmsf['dmsf_documents_email_links_only'] end def test_add_email_forbidden - xhr :get, :add_email, id: @project.id + get :add_email, :params => {id: @project.id}, :xhr => true assert_response :forbidden end def test_add_email @role.add_permission! :view_dmsf_files - xhr :get, :add_email, id: @project.id + get :add_email, :params => {id: @project.id}, :xhr => true assert_response :success end def test_append_email_forbidden - post :append_email, :id => @project, :user_ids => @project.members.collect{ |m| m.user.id }, :format => 'js' + post :append_email, :params => {:id => @project, :user_ids => @project.members.collect{ |m| m.user.id }, :format => 'js'} assert_response :forbidden end def test_append_email @role.add_permission! :view_dmsf_files - post :append_email, :id => @project, :user_ids => @project.members.collect{ |m| m.user.id }, :format => 'js' + post :append_email, :params => {:id => @project, :user_ids => @project.members.collect{ |m| m.user.id }, :format => 'js'} assert_response :success end def test_autocomplete_for_user_forbidden - xhr :get, :autocomplete_for_user, id: @project.id + get :autocomplete_for_user, :params => {id: @project.id}, :xhr => true assert_response :forbidden end def test_autocomplete_for_user @role.add_permission! :view_dmsf_files - xhr :get, :autocomplete_for_user, id: @project + get :autocomplete_for_user, :params => {id: @project}, :xhr => true assert_response :success end @@ -294,10 +294,10 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase @role.add_permission! :folder_manipulation @role.add_permission! :view_dmsf_folders assert_difference 'DmsfFolder.count', +1 do - post :create, :id => @project.id, :dmsf_folder => { + post :create, :params => {:id => @project.id, :dmsf_folder => { :title => 'New folder', :description => 'Unit tests' - } + }} end assert_redirected_to dmsf_folder_path(:id => @project, :folder_id => nil) end @@ -306,10 +306,10 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase @role.add_permission! :folder_manipulation @role.add_permission! :view_dmsf_folders assert_difference 'DmsfFolder.count', +1 do - post :create, :id => @project.id, :parent_id => @folder1.id, :dmsf_folder => { + post :create, :params => {:id => @project.id, :parent_id => @folder1.id, :dmsf_folder => { :title => 'New folder', :description => 'Unit tests' - } + }} end assert_redirected_to dmsf_folder_path(:id => @project, :folder_id => @folder1) end diff --git a/test/functional/dmsf_files_controller_test.rb b/test/functional/dmsf_files_controller_test.rb index 84f20bcf..cd4b96f9 100644 --- a/test/functional/dmsf_files_controller_test.rb +++ b/test/functional/dmsf_files_controller_test.rb @@ -57,39 +57,39 @@ class DmsfFilesControllerTest < RedmineDmsf::Test::TestCase def test_show_file_ok # Permissions OK @role.add_permission! :view_dmsf_files - get :show, :id => @file.id + get :show, :params => {:id => @file.id} assert_response :success end def test_show_file_forbidden # Missing permissions - get :show, :id => @file.id + get :show, :params => {:id => @file.id} assert_response :forbidden end def test_view_file_ok # Permissions OK @role.add_permission! :view_dmsf_files - get :view, :id => @file.id + get :view, :params => {:id => @file.id} assert_response :success end def test_view_file_forbidden # Missing permissions - get :view, :id => @file.id + get :view, :params => {:id => @file.id} assert_response :forbidden end def delete_forbidden # Missing permissions - delete @file, :commit => false + delete @file, :params => {:commit => false} assert_response :forbidden end def delete_locked # Permissions OK but the file is locked @role.add_permission! :file_delete - delete @file, :commit => false + delete @file, :params => {:commit => false} assert_response :redirect assert_include l(:error_file_is_locked), flash[:error] end @@ -98,19 +98,19 @@ class DmsfFilesControllerTest < RedmineDmsf::Test::TestCase # Permissions OK and not locked flash[:error].clear @file.unlock! - delete @file, :commit => false + delete @file, :params => {:commit => false} assert_response :redirect assert_equal 0, flash[:error].size end def test_obsolete_revision_ok @role.add_permission! :file_manipulation - get :obsolete_revision, :id => @file.last_revision.id + get :obsolete_revision, :params => {:id => @file.last_revision.id} assert_redirected_to :action => 'show', :id => @file end def test_obsolete_revision_missing_permissions - get :obsolete_revision, :id => @file.last_revision.id + get :obsolete_revision, :params => {:id => @file.last_revision.id} assert :forbiden end diff --git a/test/functional/dmsf_files_copy_controller_test.rb b/test/functional/dmsf_files_copy_controller_test.rb index c01619e4..091bd84d 100644 --- a/test/functional/dmsf_files_copy_controller_test.rb +++ b/test/functional/dmsf_files_copy_controller_test.rb @@ -72,127 +72,127 @@ class DmsfFilesCopyControllerTest < RedmineDmsf::Test::TestCase def test_authorize_admin @request.session[:user_id] = @user_admin.id - get :new, :id => @file1.id + get :new, :params => {:id => @file1.id} assert_response :success assert_template 'new' end def test_authorize_non_member @request.session[:user_id] = @user_non_member.id - get :new, :id => @file1.id + get :new, :params => {:id => @file1.id} assert_response :forbidden end def test_authorize_member_no_module @project1.disable_module!(:dmsf) - get :new, :id => @file1.id + get :new, :params => {:id => @file1.id} assert_response :forbidden end def test_authorize_forbidden @role_manager.remove_permission! :file_manipulation - get :new, :id => @file1.id + get :new, :params => {:id => @file1.id} assert_response :forbidden end def test_target_folder - get :new, :id => @file1.id, :target_folder_id => @folder1.id + get :new, :params => {:id => @file1.id, :target_folder_id => @folder1.id} assert_response :success assert_template 'new' end def test_target_folder_forbidden @role_manager.remove_permission! :view_dmsf_folders - get :new, :id => @file1.id, :target_folder_id => @folder1.id + get :new, :params => {:id => @file1.id, :target_folder_id => @folder1.id} assert_response :not_found end def test_target_project - get :new, :id => @file1.id, :target_project_id => @project1.id + get :new, :params => {:id => @file1.id, :target_project_id => @project1.id} assert_response :success assert_template 'new' end def test_new - get :new, :id => @file1.id + get :new, :params => {:id => @file1.id} assert_response :success assert_template 'new' end def test_copy - post :copy, :id => @file1.id, :target_project_id => @project1.id, :target_folder_id => @folder1.id + post :copy, :params => {:id => @file1.id, :target_project_id => @project1.id, :target_folder_id => @folder1.id} assert_response :redirect assert_nil flash[:error] end def test_copy_the_same_target - post :copy, :id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder + post :copy, :params => {:id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder} assert_equal flash[:error], l(:error_target_folder_same) assert_redirected_to :action => 'new', :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder end def test_copy_to_locked_folder @folder1.lock! - post :copy, :id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @folder1.id + post :copy, :params => {:id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @folder1.id} assert_response :forbidden end def test_copy_to_dmsf_not_enabled - post :copy, :id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil + post :copy, :params => {:id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil} assert_response :forbidden end def test_copy_to_dmsf_enabled @project5.enable_module!(:dmsf) - post :copy, :id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil + post :copy, :params => {:id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil} assert_response :redirect assert_nil flash[:error] end def test_copy_to_as_non_member - post :copy, :id => @file1.id, :target_project_id => @project2.id, :target_folder_id => nil + post :copy, :params => {:id => @file1.id, :target_project_id => @project2.id, :target_folder_id => nil} assert_response :forbidden end def test_move - post :move, :id => @file1.id, :target_project_id => @project1.id, :target_folder_id => @folder1.id + post :move, :params => {:id => @file1.id, :target_project_id => @project1.id, :target_folder_id => @folder1.id} assert_response :redirect assert_nil flash[:error] end def test_move_the_same_target - post :move, :id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder + post :move, :params => {:id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder} assert_equal flash[:error], l(:error_target_folder_same) assert_redirected_to :action => 'new', :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder end def test_move_to_locked @file1.lock! - post :move, :id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @folder1.id + post :move, :params => {:id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @folder1.id} assert_response :redirect assert_equal l(:error_file_is_locked), flash[:error] end def test_move_to_locked_folder @folder1.lock! - post :move, :id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @folder1.id + post :move, :params => {:id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @folder1.id} assert_response :forbidden end def test_move_to_dmsf_not_enabled - post :move, :id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil + post :move, :params => {:id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil} assert_response :forbidden end def test_move_to_dmsf_enabled @project5.enable_module!(:dmsf) - post :move, :id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil + post :move, :params => {:id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil} assert_response :redirect assert_nil flash[:error] end def test_move_to_as_non_member - post :move, :id => @file1.id, :target_project_id => @project2.id, :target_folder_id => nil + post :move, :params => {:id => @file1.id, :target_project_id => @project2.id, :target_folder_id => nil} assert_response :forbidden end diff --git a/test/functional/dmsf_folder_permissions_controller_test.rb b/test/functional/dmsf_folder_permissions_controller_test.rb index 46eba14a..6cd8a8d1 100644 --- a/test/functional/dmsf_folder_permissions_controller_test.rb +++ b/test/functional/dmsf_folder_permissions_controller_test.rb @@ -46,20 +46,20 @@ class DmsfFolderPermissionsControllerTest < RedmineDmsf::Test::TestCase end def test_new - xhr :get, :new, :project_id => @project1, :format => 'js' + get :new, :params => {:project_id => @project1, :format => 'js'}, :xhr => true assert_response :success assert_template 'new' assert_equal 'text/javascript', response.content_type end def test_autocomplete_for_user - xhr :get, :autocomplete_for_user, :project_id => @project1, :q => 'smi', :format => 'js' + get :autocomplete_for_user, :params => {:project_id => @project1, :q => 'smi', :format => 'js'}, :xhr => true assert_response :success assert_include 'John Smith', response.body end def test_append - xhr :get, :new, :project_id => @project1, :user_ids => [@manager.id], :format => 'js' + get :new, :params => {:project_id => @project1, :user_ids => [@manager.id], :format => 'js'}, :xhr => true assert_response :success assert_template 'new' assert_equal 'text/javascript', response.content_type diff --git a/test/functional/dmsf_folders_copy_controller_test.rb b/test/functional/dmsf_folders_copy_controller_test.rb index 25eb6c0c..adb9e998 100644 --- a/test/functional/dmsf_folders_copy_controller_test.rb +++ b/test/functional/dmsf_folders_copy_controller_test.rb @@ -73,55 +73,55 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase def test_authorize_admin @request.session[:user_id] = @user_admin.id - get :new, :id => @folder1.id + get :new, :params => {:id => @folder1.id} assert_response :success assert_template 'new' end def test_authorize_non_member @request.session[:user_id] = @user_non_member.id - get :new, :id => @folder1.id + get :new, :params => {:id => @folder1.id} assert_response :forbidden end def test_authorize_member_no_module @project1.disable_module!(:dmsf) - get :new, :id => @folder1.id + get :new, :params => {:id => @folder1.id} assert_response :forbidden end def test_authorize_forbidden @role_manager.remove_permission! :folder_manipulation - get :new, :id => @folder1.id + get :new, :params => {:id => @folder1.id} assert_response :forbidden end def test_target_folder - get :new, :id => @folder1.id, :target_folder_id => @folder2.id + get :new, :params => {:id => @folder1.id, :target_folder_id => @folder2.id} assert_response :success assert_template 'new' end def test_target_folder_forbidden @role_manager.remove_permission! :view_dmsf_folders - get :new, :id => @folder1.id, :target_folder_id => @folder2.id + get :new, :params => {:id => @folder1.id, :target_folder_id => @folder2.id} assert_response :forbidden end def test_target_project - get :new, :id => @folder1.id, :target_project_id => @project1.id + get :new, :params => {:id => @folder1.id, :target_project_id => @project1.id} assert_response :success assert_template 'new' end def test_new - get :new, :id => @folder1.id + get :new, :params => {:id => @folder1.id} assert_response :success assert_template 'new' end def test_copy - post :copy, :id => @folder1.id, :target_project_id => @project1.id, :target_folder_id => @folder6.id + post :copy, :params => {:id => @folder1.id, :target_project_id => @project1.id, :target_folder_id => @folder6.id} assert_response :redirect assert_nil flash[:error] end @@ -130,7 +130,7 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase @request.session[:user_id] = @user_admin.id @project2.enable_module!(:dmsf) assert_equal @project1.id, @folder1.project_id - post :copy, :id => @folder1.id, :target_project_id => @project2.id + post :copy, :params => {:id => @folder1.id, :target_project_id => @project2.id} assert_response :redirect assert_nil flash[:error] # Check all childs' project ID @@ -141,71 +141,71 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase end def test_copy_the_same_target - post :copy, :id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder1.dmsf_folder + post :copy, :params => {:id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder1.dmsf_folder} assert_equal flash[:error], l(:error_target_folder_same) assert_redirected_to :action => 'new', :target_project_id => @folder1.project.id, :target_folder_id => @folder1.dmsf_folder end def test_copy_to_locked_folder - post :copy, :id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder2.id + post :copy, :params => {:id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder2.id} assert_response :forbidden end def test_copy_to_dmsf_not_enabled - post :copy, :id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil + post :copy, :params => {:id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil} assert_response :forbidden end def test_copy_to_dmsf_enabled @project5.enable_module!(:dmsf) - post :copy, :id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil + post :copy, :params => {:id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil} assert_response :redirect assert_nil flash[:error] end def test_copy_to_as_non_member - post :copy, :id => @folder1.id, :target_project_id => @project2.id, :target_folder_id => nil + post :copy, :params => {:id => @folder1.id, :target_project_id => @project2.id, :target_folder_id => nil} assert_response :forbidden end def test_move - post :move, :id => @folder1.id, :target_project_id => @project1.id, :target_folder_id => @folder6.id + post :move, :params => {:id => @folder1.id, :target_project_id => @project1.id, :target_folder_id => @folder6.id} assert_response :redirect assert_nil flash[:error] end def test_move_the_same_target - post :move, :id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder1.dmsf_folder + post :move, :params => {:id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder1.dmsf_folder} assert_equal flash[:error], l(:error_target_folder_same) assert_redirected_to :action => 'new', :target_project_id => @folder1.project.id, :target_folder_id => @folder1.dmsf_folder end def test_move_to_locked @folder1.lock! - post :move, :id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder2.id + post :move, :params => {:id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder2.id} assert_response :forbidden end def test_move_to_locked_folder - post :move, :id => @folder1.id, :target_project_id => @folder2.project.id, :target_folder_id => @folder2.id + post :move, :params => {:id => @folder1.id, :target_project_id => @folder2.project.id, :target_folder_id => @folder2.id} assert_response :forbidden end def test_move_to_dmsf_not_enabled - post :move, :id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil + post :move, :params => {:id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil} assert_response :forbidden end def test_move_to_dmsf_enabled @project5.enable_module!(:dmsf) - post :move, :id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil + post :move, :params => {:id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil} assert_response :redirect assert_nil flash[:error] end def test_move_to_as_non_member - post :move, :id => @folder1.id, :target_project_id => @project2.id, :target_folder_id => nil + post :move, :params => {:id => @folder1.id, :target_project_id => @project2.id, :target_folder_id => nil} assert_response :forbidden end @@ -213,7 +213,7 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase @request.session[:user_id] = @user_admin.id @project2.enable_module!(:dmsf) assert_equal @project1.id, @folder1.project_id - post :move, :id => @folder1.id, :target_project_id => @project2.id + post :move, :params => {:id => @folder1.id, :target_project_id => @project2.id} assert_response :redirect assert_nil flash[:error] # Check all childs' project ID diff --git a/test/functional/dmsf_links_controller_test.rb b/test/functional/dmsf_links_controller_test.rb index 648408b7..019cc286 100644 --- a/test/functional/dmsf_links_controller_test.rb +++ b/test/functional/dmsf_links_controller_test.rb @@ -73,27 +73,27 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_authorize_admin @request.session[:user_id] = @user_admin.id - get :new, :project_id => @project1.id + get :new, :params => {:project_id => @project1.id} assert_response :success assert_template 'new' end def test_authorize_non_member @request.session[:user_id] = @user_non_member.id - get :new, :project_id => @project2.id + get :new, :params => {:project_id => @project2.id} assert_response :forbidden end def test_authorize_member_ok @request.session[:user_id] = @user_member.id - get :new, :project_id => @project1.id + get :new, :params => {:project_id => @project1.id} assert_response :success end def test_authorize_member_no_module # Without the module @project1.disable_module!(:dmsf) - get :new, :project_id => @project1.id + get :new, :params => {:project_id => @project1.id} assert_response :forbidden end @@ -101,12 +101,12 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase # Without permissions @project1.enable_module!(:dmsf) @role_manager.remove_permission! :file_manipulation - get :new, :project_id => @project1.id + get :new, :params => {:project_id => @project1.id} assert_response :forbidden end def test_new - get :new, :project_id => @project1.id, :type => 'link_to' + get :new, :params => {:project_id => @project1.id, :type => 'link_to'} assert_response :success assert_select 'label', { :text => l(:label_target_project) } end @@ -115,7 +115,7 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase member = Member.where(:user_id => @user_member.id, :project_id => @project1.id).first assert member member.update_attribute :dmsf_fast_links, true - get :new, :project_id => @project1.id, :type => 'link_to' + get :new, :params => {:project_id => @project1.id, :type => 'link_to'} assert_response :success assert_select 'label', { :count => 0, :text => l(:label_target_project) } end @@ -123,7 +123,7 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_create_file_link_from_f1 # 1. File link in a folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :target_project_id => @project2.id, :dmsf_folder_id => @folder1.id, @@ -131,7 +131,7 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase :target_folder_id => @folder3.id, :name => 'file_link', :type => 'link_from' - } + }} end assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id) end @@ -139,7 +139,7 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_create_file_link_from_f2 # 2. File link in a folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :dmsf_folder_id => @folder1.id, :target_project_id => @project2.id, @@ -147,7 +147,7 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase :target_folder_id => 'Documents', :name => 'file_link', :type => 'link_from' - } + }} end assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id) end @@ -155,14 +155,14 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_create_file_link_from_f3 # 3. File link in a root folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :target_project_id => @project2.id, :target_file_id => @file6.id, :target_folder_id => @folder3.id, :name => 'file_link', :type => 'link_from' - } + }} end assert_redirected_to dmsf_folder_path(:id => @project1.id) end @@ -170,28 +170,28 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_create_file_link_from_f4 # 4. File link in a root folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :target_project_id => @project2.id, :target_file_id => @file2.id, :name => 'file_link', :type => 'link_from' - } - end + }} + end assert_redirected_to dmsf_folder_path(:id => @project1.id) end def test_create_folder_link_from_d1 # 1. Folder link in a folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :dmsf_folder_id => @folder1.id, :target_project_id => @project2.id, :target_folder_id => @folder3.id, :name => 'folder_link', :type => 'link_from' - } + }} end assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id) end @@ -199,13 +199,13 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_create_folder_link_from_d2 # 2. Folder link in a folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :dmsf_folder_id => @folder1.id, :target_project_id => @project2.id, :name => 'folder_link', :type => 'link_from' - } + }} end assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id) end @@ -213,13 +213,13 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_create_folder_link_from_d3 # 3. Folder link in a root folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :target_project_id => @project2.id, :target_folder_id => @folder3.id, :name => 'folder_link', :type => 'link_from' - } + }} end assert_redirected_to dmsf_folder_path(:id => @project1.id) end @@ -227,35 +227,35 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_create_folder_link_from_d4 # 4. Folder link in a root folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :target_project_id => @project2.id, :name => 'folder_link', :type => 'link_from' - } - end + }} + end assert_redirected_to dmsf_folder_path(:id => @project1.id) end def test_create_file_link_to_f1 # 1. File link to a root folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :dmsf_file_id => @file1.id, :target_project_id => @project2.id, :target_folder_id => @folder3.id, :name => 'file_link', :type => 'link_to' - } - end + }} + end assert_redirected_to dmsf_file_path(@file1) end def test_create_file_link_to_f2 # 2. File link to a folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project2.id, :dmsf_folder_id => @folder3.id, :target_project_id => @project1.id, @@ -263,85 +263,85 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase :dmsf_file_id => @file6.id, :name => 'file_link', :type => 'link_to' - } - end + }} + end assert_redirected_to dmsf_file_path(@file6) end def test_create_file_link_to_f3 # 3. File link to a root folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project2.id, :target_project_id => @project1.id, :dmsf_file_id => @file6.id, :name => 'file_link', :type => 'link_to' - } - end + }} + end assert_redirected_to dmsf_file_path(@file6) end def test_create_file_link_to_f4 # 4. File link to a folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project2.id, :dmsf_folder_id => @folder3.id, :target_project_id => @project1.id, :dmsf_file_id => @file6.id, :name => 'file_link', :type => 'link_to' - } - end + }} + end assert_redirected_to dmsf_file_path(@file6) end def test_create_external_link_from assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :target_project_id => @project1.id, :name => 'file_link', :external_link => 'true', :type => 'link_from' - } - end + }} + end assert_redirected_to dmsf_folder_path(:id => @project1.id) end def test_create_folder_link_to_f1 # 1. Folder link to a root folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :dmsf_folder_id => @folder1.id, :target_project_id => @project2.id, :name => 'folder_link', :type => 'link_to' - } - end + }} + end assert_redirected_to edit_dmsf_path(:id => @project1.id, :folder_id => @folder1.id) end def test_create_folder_link_to_f2 # 2. Folder link to a folder assert_difference 'DmsfLink.count', +1 do - post :create, :dmsf_link => { + post :create, :params => {:dmsf_link => { :project_id => @project1.id, :dmsf_folder_id => @folder1.id, :target_project_id => @project2.id, :target_folder_id => @folder3.id, :name => 'folder_link', :type => 'link_to' - } - end + }} + end assert_redirected_to edit_dmsf_path(:id => @project1.id, :folder_id => @folder1.id) end def test_destroy assert_difference 'DmsfLink.visible.count', -1 do - delete :destroy, :project_id => @project1.id, :id => @file_link.id + delete :destroy, :params => {:project_id => @project1.id, :id => @file_link.id} end assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id) end @@ -350,7 +350,7 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase # Missing permissions @request.env['HTTP_REFERER'] = trash_dmsf_path(:id => @project1.id) @role_manager.remove_permission! :file_manipulation - get :restore, :project_id => @project1.id, :id => @file_link.id + get :restore, :params => {:project_id => @project1.id, :id => @file_link.id} assert_response :forbidden end @@ -358,7 +358,7 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase # Permissions OK @request.env['HTTP_REFERER'] = trash_dmsf_path(:id => @project1.id) @role_manager.add_permission! :file_manipulation - get :restore, :project_id => @project1.id, :id => @file_link.id + get :restore, :params => {:project_id => @project1.id, :id => @file_link.id} assert_response :redirect end diff --git a/test/functional/dmsf_public_urls_controller_test.rb b/test/functional/dmsf_public_urls_controller_test.rb index 831265a4..da4845a7 100644 --- a/test/functional/dmsf_public_urls_controller_test.rb +++ b/test/functional/dmsf_public_urls_controller_test.rb @@ -35,17 +35,17 @@ class DmsfPublicUrlsControllerTest < RedmineDmsf::Test::TestCase end def test_show_valid_url - get :show, :token => 'd8d33e21914a433b280fdc94450ee212' + get :show, :params => {:token => 'd8d33e21914a433b280fdc94450ee212'} assert_response :success end def test_show_url_width_invalid_token - get :show, :token => 'f8d33e21914a433b280fdc94450ee212' + get :show, :params => {:token => 'f8d33e21914a433b280fdc94450ee212'} assert_response :not_found end def test_show_url_that_has_expired - get :show, :token => 'e8d33e21914a433b280fdc94450ee212' + get :show, :params => {:token => 'e8d33e21914a433b280fdc94450ee212'} assert_response :not_found end diff --git a/test/functional/dmsf_state_controller_test.rb b/test/functional/dmsf_state_controller_test.rb index 021aeaab..1cab016e 100644 --- a/test/functional/dmsf_state_controller_test.rb +++ b/test/functional/dmsf_state_controller_test.rb @@ -47,8 +47,8 @@ class DmsfStateControllerTest < RedmineDmsf::Test::TestCase # Member @request.session[:user_id] = @user_member.id @role_manager.add_permission! :user_preferences - post :user_pref_save, :id => @project.id, :email_notify => 1, - :title_format => '%t_%v' + post :user_pref_save, :params => {:id => @project.id, :email_notify => 1, + :title_format => '%t_%v'} assert_redirected_to settings_project_path(@project, :tab => 'dmsf') assert_not_nil flash[:notice] assert_equal flash[:notice], l(:notice_your_preferences_were_saved) @@ -57,8 +57,8 @@ class DmsfStateControllerTest < RedmineDmsf::Test::TestCase def test_user_pref_save_member_forbidden # Member @request.session[:user_id] = @user_member.id - post :user_pref_save, :id => @project.id, :email_notify => 1, - :title_format => '%t_%v' + post :user_pref_save, :params => {:id => @project.id, :email_notify => 1, + :title_format => '%t_%v'} assert_response :forbidden end @@ -66,8 +66,8 @@ class DmsfStateControllerTest < RedmineDmsf::Test::TestCase # Non Member @request.session[:user_id] = @user_non_member.id @role_manager.add_permission! :user_preferences - post :user_pref_save, :id => @project.id, :email_notify => 1, - :title_format => '%t_%v' + post :user_pref_save, :params => {:id => @project.id, :email_notify => 1, + :title_format => '%t_%v'} assert_response :forbidden end @@ -75,8 +75,8 @@ class DmsfStateControllerTest < RedmineDmsf::Test::TestCase # Admin - non member @request.session[:user_id] = @user_admin.id @role_manager.add_permission! :user_preferences - post :user_pref_save, :id => @project.id, :email_notify => 1, - :title_format => '%t_%v' + post :user_pref_save, :params => {:id => @project.id, :email_notify => 1, + :title_format => '%t_%v'} assert_redirected_to settings_project_path(@project, :tab => 'dmsf') assert_not_nil flash[:warning] assert_equal flash[:warning], l(:user_is_not_project_member) diff --git a/test/functional/dmsf_workflow_controller_test.rb b/test/functional/dmsf_workflow_controller_test.rb index 88bec7d0..a879ca40 100644 --- a/test/functional/dmsf_workflow_controller_test.rb +++ b/test/functional/dmsf_workflow_controller_test.rb @@ -85,7 +85,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_authorize_member # Non member @request.session[:user_id] = @user_non_member.id - get :index, :project_id => @project1.id + get :index, :params => {:project_id => @project1.id} assert_response :forbidden end @@ -97,7 +97,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_authorize_projects # Project - get :index, :project_id => @project1.id + get :index, :params => {:project_id => @project1.id} assert_response :success assert_template 'index' end @@ -105,23 +105,23 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_authorize_manage_workflows_forbidden # Without permissions @role_manager.remove_permission! :manage_workflows - get :index, :project_id => @project1.id + get :index, :params => {:project_id => @project1.id} assert_response :forbidden end def test_authorization_file_approval_ok @role_manager.add_permission! :file_approval @revision2.dmsf_workflow_id = @wf1.id - get :start, :id => @revision2.dmsf_workflow_id, - :dmsf_file_revision_id => @revision2.id + get :start, :params => {:id => @revision2.dmsf_workflow_id, + :dmsf_file_revision_id => @revision2.id} assert_response :redirect end def test_authorization_file_approval_forbidden @role_manager.remove_permission! :file_approval @revision2.dmsf_workflow_id = @wf1.id - get :start, :id => @revision2.dmsf_workflow_id, - :dmsf_file_revision_id => @revision2.id + get :start, :params => {:id => @revision2.dmsf_workflow_id, + :dmsf_file_revision_id => @revision2.id} assert_response :forbidden end @@ -129,7 +129,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase # Without the module @role_manager.add_permission! :file_manipulation @project1.disable_module!(:dmsf) - get :index, :project_id => @project1.id + get :index, :params => {:project_id => @project1.id} assert_response :forbidden end @@ -141,52 +141,52 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_index_project - get :index, :project_id => @project1.id + get :index, :params => {:project_id => @project1.id} assert_response :success assert_template 'index' end def test_new - get :new, :project_id => @project1.id + get :new, :params => {:project_id => @project1.id} assert_response :success assert_template 'new' end def test_lock - put :update, :id => @wf1.id, :dmsf_workflow => { :status => DmsfWorkflow::STATUS_LOCKED } + put :update, :params => {:id => @wf1.id, :dmsf_workflow => { :status => DmsfWorkflow::STATUS_LOCKED }} @wf1.reload assert @wf1.locked?, "#{@wf1.name} status is #{@wf1.status}" end def test_unlock @request.session[:user_id] = @user_admin.id - put :update, :id => @wf3.id, :dmsf_workflow => { :status => DmsfWorkflow::STATUS_ACTIVE } + put :update, :params => {:id => @wf3.id, :dmsf_workflow => { :status => DmsfWorkflow::STATUS_ACTIVE }} @wf3.reload assert @wf3.active?, "#{@wf3.name} status is #{@wf3.status}" end def test_show - get :show, :id => @wf1.id + get :show, :params => {:id => @wf1.id} assert_response :success assert_template 'show' end def test_create assert_difference 'DmsfWorkflow.count', +1 do - post :create, :dmsf_workflow => {:name => 'wf4', :project_id => @project1.id} + post :create, :params => {:dmsf_workflow => {:name => 'wf4', :project_id => @project1.id}} end assert_redirected_to settings_project_path(@project1, :tab => 'dmsf_workflow') end def test_update - put :update, :id => @wf1.id, :dmsf_workflow => {:name => 'wf1a'} + put :update, :params => {:id => @wf1.id, :dmsf_workflow => {:name => 'wf1a'}} @wf1.reload assert_equal 'wf1a', @wf1.name end def test_destroy assert_difference 'DmsfWorkflow.count', -1 do - delete :destroy, :id => @wf1.id + delete :destroy, :params => {:id => @wf1.id} end assert_redirected_to settings_project_path(@project1, :tab => 'dmsf_workflow') assert_equal 0, DmsfWorkflowStep.where(:dmsf_workflow_id => @wf1.id).all.count @@ -194,8 +194,8 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_add_step assert_difference 'DmsfWorkflowStep.count', +1 do - post :add_step, :commit => l(:dmsf_or), :step => 1, :name => '1st step', :id => @wf1.id, - :user_ids => [@user_non_member.id] + post :add_step, :params => {:commit => l(:dmsf_or), :step => 1, :name => '1st step', :id => @wf1.id, + :user_ids => [@user_non_member.id]} end assert_response :success ws = DmsfWorkflowStep.order(id: :desc).first @@ -209,7 +209,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_remove_step n = DmsfWorkflowStep.where(:dmsf_workflow_id => @wf1.id, :step => 1).count assert_difference 'DmsfWorkflowStep.count', -n do - delete :remove_step, :step => @wfs1.id, :id => @wf1.id + delete :remove_step, :params => {:step => @wfs1.id, :id => @wf1.id} end assert_response :redirect ws = DmsfWorkflowStep.where(:dmsf_workflow_id => @wf1.id).order(:id =>:asc).first @@ -217,7 +217,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_reorder_steps_to_lower - put :reorder_steps, :step => 1, :id => @wf1.id, :dmsf_workflow => {:position => 2} + put :reorder_steps, :params => {:step => 1, :id => @wf1.id, :dmsf_workflow => {:position => 2}} assert_response :success @wfs1.reload @wfs2.reload @@ -232,7 +232,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_reorder_steps_to_lowest - put :reorder_steps, :step => 1, :id => @wf1.id, :dmsf_workflow => {:position => 3} + put :reorder_steps, :params => {:step => 1, :id => @wf1.id, :dmsf_workflow => {:position => 3}} assert_response :success @wfs1.reload @wfs2.reload @@ -247,7 +247,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_reorder_steps_to_higher - put :reorder_steps, :step => 3, :id => @wf1.id, :dmsf_workflow => {:position => 2} + put :reorder_steps, :params => {:step => 3, :id => @wf1.id, :dmsf_workflow => {:position => 2}} assert_response :success @wfs1.reload @wfs2.reload @@ -262,7 +262,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_reorder_steps_to_highest - put :reorder_steps, :step => 3, :id => @wf1.id, :dmsf_workflow => {:position => '1'} + put :reorder_steps, :params => {:step => 3, :id => @wf1.id, :dmsf_workflow => {:position => '1'}} assert_response :success @wfs1.reload @wfs2.reload @@ -278,14 +278,14 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_action_approve post( - :new_action, + :new_action, :params => { :commit => l(:button_submit), :id => @wf1.id, :dmsf_workflow_step_assignment_id => @wfsa2.id, :dmsf_file_revision_id => @revision1.id, :step_action => DmsfWorkflowStepAction::ACTION_APPROVE, :user_id => nil, - :note => '') + :note => ''}) assert_redirected_to dmsf_folder_path(:id => @project1.id) assert DmsfWorkflowStepAction.where( :dmsf_workflow_step_assignment_id => @wfsa2.id, @@ -294,13 +294,13 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_action_reject post( - :new_action, + :new_action, :params => { :commit => l(:button_submit), :id => @wf1.id, :dmsf_workflow_step_assignment_id => @wfsa2.id, :dmsf_file_revision_id => @revision2.id, :step_action => DmsfWorkflowStepAction::ACTION_REJECT, - :note => 'Rejected because...') + :note => 'Rejected because...'}) assert_response :redirect assert DmsfWorkflowStepAction.where( :dmsf_workflow_step_assignment_id => @wfsa2.id, @@ -308,14 +308,13 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_action - xhr( - :get, - :action, + get( + :action, :xhr => true, :params => { :project_id => @project1.id, :id => @wf1.id, :dmsf_workflow_step_assignment_id => @wfsa2.id, :dmsf_file_revision_id => @revision2.id, - :title => l(:title_waiting_for_approval)) + :title => l(:title_waiting_for_approval)}) assert_response :success assert_match(/ajax-modal/, response.body) assert_template 'action' @@ -323,13 +322,13 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_new_action_delegate post( - :new_action, + :new_action, :params => { :commit => l(:button_submit), :id => @wf1.id, :dmsf_workflow_step_assignment_id => @wfsa2.id, :dmsf_file_revision_id => @revision2.id, :step_action => @user_admin.id * 10, - :note => 'Delegated because...') + :note => 'Delegated because...'}) assert_redirected_to dmsf_folder_path(:id => @project1.id) assert DmsfWorkflowStepAction.where( :dmsf_workflow_step_assignment_id => @wfsa2.id, @@ -339,13 +338,12 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_assign - xhr( - :get, - :assign, + get( + :assign, :xhr => true, :params => { :project_id => @project1.id, :id => @wf1.id, :dmsf_file_revision_id => @revision1.id, - :title => l(:label_dmsf_wokflow_action_assign)) + :title => l(:label_dmsf_wokflow_action_assign)}) assert_response :success assert_match(/ajax-modal/, response.body) assert_template 'assign' @@ -353,24 +351,24 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_start @revision2.dmsf_workflow_id = @wf1.id - get :start, :id => @revision2.dmsf_workflow_id, :dmsf_file_revision_id => @revision2.id + get :start, :params => {:id => @revision2.dmsf_workflow_id, :dmsf_file_revision_id => @revision2.id} assert_redirected_to dmsf_folder_path(:id => @project1.id) end def test_assignment post( - :assignment, + :assignment, :params => { :commit => l(:button_submit), :id => @wf1.id, :dmsf_workflow_id => @wf1.id, :dmsf_file_revision_id => @revision2.id, :action => 'assignment', - :project_id => @project1.id) + :project_id => @project1.id}) assert_response :redirect end def test_update_step_name - put :update_step, id: @wf1.id, step: @wfs2.step, dmsf_workflow: { step_name: 'new_name'} + put :update_step, :params => {id: @wf1.id, step: @wfs2.step, dmsf_workflow: { step_name: 'new_name'}} assert_response :redirect # All steps in the same step must be renamed @wfs2.reload @@ -383,22 +381,22 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_update_step_operators - put :update_step, + put :update_step, :params => { :id => @wf1, :step => '1', :operator_step => { @wfs1.id.to_s => DmsfWorkflowStep::OPERATOR_OR.to_s }, - :assignee => { @wfs1.id.to_s => @wfs1.user_id.to_s } + :assignee => { @wfs1.id.to_s => @wfs1.user_id.to_s }} assert_response :redirect @wfs1.reload assert_equal @wfs1.operator, DmsfWorkflowStep::OPERATOR_OR end def test_update_step_assignee - put :update_step, + put :update_step, :params => { :id => @wf1, :step => '1', :operator_step => { @wfs1.id.to_s => DmsfWorkflowStep::OPERATOR_OR.to_s }, - :assignee => { @wfs1.id.to_s => @user_non_member.id.to_s } + :assignee => { @wfs1.id.to_s => @user_non_member.id.to_s }} assert_response :redirect @wfs1.reload assert_equal @user_non_member.id, @wfs1.user_id @@ -407,7 +405,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_delete_step name = @wfs2.name assert_difference 'DmsfWorkflowStep.count', -1 do - delete :delete_step, :id => @wf1, :step => @wfs2.id + delete :delete_step, :params => {:id => @wf1, :step => @wfs2.id} end @wfs3.reload assert_equal @wfs3.name, name diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index ca7cf5e2..aa84cc4e 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -67,8 +67,8 @@ class IssuesControllerTest < RedmineDmsf::Test::TestCase main_system_folder = @issue1.main_system_folder assert main_system_folder assert_equal @project1.id, main_system_folder.project_id - put :update, id: @issue1.id, issue: { project_id: @project2.id, tracker_id: '1', priority_id: '6', - category_id: '3' } + put :update, :params => {id: @issue1.id, issue: { project_id: @project2.id, tracker_id: '1', priority_id: '6', + category_id: '3' }} assert_redirected_to action: 'show', id: @issue1.id @issue1.reload assert_equal @project2.id, @issue1.project.id diff --git a/test/functional/my_controller_test.rb b/test/functional/my_controller_test.rb index a627e191..4abaecf9 100644 --- a/test/functional/my_controller_test.rb +++ b/test/functional/my_controller_test.rb @@ -38,7 +38,7 @@ class MyControllerTest < RedmineDmsf::Test::TestCase end def test_page_with_open_approvals_one_approval - DmsfFileRevision.delete_all(id: 5) + DmsfFileRevision.where(id: 5).delete_all @user_member.pref[:my_page_layout] = { 'top' => ['open_approvals'] } @user_member.pref.save! get :page diff --git a/test/integration/rest_api/dmsf_file_api_test.rb b/test/integration/rest_api/dmsf_file_api_test.rb index 19c13290..6ee39187 100644 --- a/test/integration/rest_api/dmsf_file_api_test.rb +++ b/test/integration/rest_api/dmsf_file_api_test.rb @@ -95,7 +95,7 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest def test_upload_document @role.add_permission! :file_manipulation #curl --data-binary "@cat.gif" -H "Content-Type: application/octet-stream" -X POST -u ${1}:${2} http://localhost:3000/projects/12/dmsf/upload.xml?filename=cat.gif - post "/projects/#{@project1.id}/dmsf/upload.xml?filename=test.txt&key=#{@token.value}", 'File content', {"CONTENT_TYPE" => 'application/octet-stream'} + post "/projects/#{@project1.id}/dmsf/upload.xml?filename=test.txt&key=#{@token.value}", :params => 'File content', :headers => {"CONTENT_TYPE" => 'application/octet-stream'} assert_response :created assert_equal 'application/xml', response.content_type # @@ -120,7 +120,7 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest } assert_difference 'DmsfFileRevision.count', +1 do - post "/projects/#{@project1.id}/dmsf/commit.xml?key=#{@token.value}", payload, {"CONTENT_TYPE" => 'application/xml'} + post "/projects/#{@project1.id}/dmsf/commit.xml?key=#{@token.value}", :params => payload, :headers => {"CONTENT_TYPE" => 'application/xml'} end # # @@ -138,7 +138,7 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest def test_delete_file @role.add_permission! :file_delete # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/dmsf/files/196118.xml - delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}", {'CONTENT_TYPE' => 'application/xml'} + delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}", :headers => {'CONTENT_TYPE' => 'application/xml'} assert_response :success @file1.reload assert_equal DmsfFile::STATUS_DELETED, @file1.deleted @@ -148,14 +148,14 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest def test_delete_file_no_permissions token = Token.create!(:user => @jsmith, :action => 'api') # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/dmsf/files/196118.xml - delete "/dmsf/files/#{@file1.id}.xml?key=#{token.value}", {'CONTENT_TYPE' => 'application/xml'} + delete "/dmsf/files/#{@file1.id}.xml?key=#{token.value}", :headers => {'CONTENT_TYPE' => 'application/xml'} assert_response :forbidden end def test_delete_folder_commit_yes @role.add_permission! :file_delete # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/dmsf/files/196118.xml&commit=yes - delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}&commit=yes", {'CONTENT_TYPE' => 'application/xml'} + delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}&commit=yes", :headers => {'CONTENT_TYPE' => 'application/xml'} assert_response :success assert_nil DmsfFile.find_by(id: @file1.id) end @@ -166,7 +166,7 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest @file1.lock! User.current = @jsmith # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/dmsf/files/196118.xml - delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}", {'CONTENT_TYPE' => 'application/xml'} + delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}", :headers => {'CONTENT_TYPE' => 'application/xml'} assert_response 422 # # diff --git a/test/integration/rest_api/dmsf_folder_api_test.rb b/test/integration/rest_api/dmsf_folder_api_test.rb index d0adda7a..077b5b08 100644 --- a/test/integration/rest_api/dmsf_folder_api_test.rb +++ b/test/integration/rest_api/dmsf_folder_api_test.rb @@ -151,7 +151,7 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest A folder created via REST API } - post "/projects/#{@project1.id}/dmsf/create.xml?key=#{token.value}", payload, {'CONTENT_TYPE' => 'application/xml'} + post "/projects/#{@project1.id}/dmsf/create.xml?key=#{token.value}", :params => payload, :headers => {'CONTENT_TYPE' => 'application/xml'} assert_response :success # # @@ -242,7 +242,7 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest rest_api A folder updated via REST API } - post "/projects/#{@project1.id}/dmsf/save.xml?folder_id=1&key=#{token.value}", payload, {'CONTENT_TYPE' => 'application/xml'} + post "/projects/#{@project1.id}/dmsf/save.xml?folder_id=1&key=#{token.value}", :params => payload, :headers => {'CONTENT_TYPE' => 'application/xml'} assert_response :success # # @@ -258,7 +258,7 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest token = Token.create!(:user => @jsmith, :action => 'api') # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/projects/1/dmsf/delete.xml?folder_id=3 delete "/projects/#{@project1.id}/dmsf/delete.xml?key=#{token.value}&folder_id=#{@folder1.id}", - {'CONTENT_TYPE' => 'application/xml'} + :headers => {'CONTENT_TYPE' => 'application/xml'} assert_response :success @folder1.reload assert_equal DmsfFolder::STATUS_DELETED, @folder1.deleted @@ -269,7 +269,7 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest token = Token.create!(:user => @jsmith, :action => 'api') # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/projects/1/dmsf/delete.xml?folder_id=3 delete "/projects/#{@project1.id}/dmsf/delete.xml?key=#{token.value}&folder_id=#{@folder1.id}", - {'CONTENT_TYPE' => 'application/xml'} + :headers => {'CONTENT_TYPE' => 'application/xml'} assert_response :forbidden end @@ -278,7 +278,7 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest token = Token.create!(:user => @jsmith, :action => 'api') # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/projects/1/dmsf/delete.xml?folder_id=3 delete "/projects/#{@project1.id}/dmsf/delete.xml?key=#{token.value}&folder_id=#{@folder1.id}&commit=yes", - {'CONTENT_TYPE' => 'application/xml'} + :headers => {'CONTENT_TYPE' => 'application/xml'} assert_response :success assert_nil DmsfFolder.find_by(id: @folder1.id) end @@ -291,7 +291,7 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest token = Token.create!(:user => @jsmith, :action => 'api') # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/projects/1/dmsf/delete.xml?folder_id=3 delete "/projects/#{@project1.id}/dmsf/delete.xml?key=#{token.value}&folder_id=#{@folder1.id}", - {'CONTENT_TYPE' => 'application/xml'} + :headers => {'CONTENT_TYPE' => 'application/xml'} assert_response 422 # # diff --git a/test/integration/rest_api/dmsf_link_api_test.rb b/test/integration/rest_api/dmsf_link_api_test.rb index 21e4e499..7c08d88f 100644 --- a/test/integration/rest_api/dmsf_link_api_test.rb +++ b/test/integration/rest_api/dmsf_link_api_test.rb @@ -59,7 +59,7 @@ class DmsfLinkApiTest < RedmineDmsf::Test::IntegrationTest #{name} } - post "/dmsf_links.xml?key=#{token.value}", payload, {'CONTENT_TYPE' => 'application/xml'} + post "/dmsf_links.xml?key=#{token.value}", :params => payload, :headers => {'CONTENT_TYPE' => 'application/xml'} assert_response :success # # diff --git a/test/integration/webdav/dmsf_webdav_custom_middleware_test.rb b/test/integration/webdav/dmsf_webdav_custom_middleware_test.rb index b7ba05d5..25f36f35 100644 --- a/test/integration/webdav/dmsf_webdav_custom_middleware_test.rb +++ b/test/integration/webdav/dmsf_webdav_custom_middleware_test.rb @@ -32,18 +32,18 @@ class DmsfWebdavCustomMiddlewareTest < RedmineDmsf::Test::IntegrationTest end def test_options_for_root_path - xml_http_request :options, '/' + process :options, '/' assert_response defined?(EasyExtensions) ? :method_not_allowed : :not_found end def test_options_for_dmsf_root_path - xml_http_request :options, '/dmsf' + process :options, '/dmsf' assert_response :success end def test_webdav_not_enabled Setting.plugin_redmine_dmsf['dmsf_webdav'] = nil - xml_http_request :options, '/dmsf/webdav' + process :options, '/dmsf/webdav' assert_response :not_found end diff --git a/test/integration/webdav/dmsf_webdav_delete_test.rb b/test/integration/webdav/dmsf_webdav_delete_test.rb index f2d13972..73da5af9 100644 --- a/test/integration/webdav/dmsf_webdav_delete_test.rb +++ b/test/integration/webdav/dmsf_webdav_delete_test.rb @@ -83,51 +83,51 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest end def test_failed_authentication_global - delete '/dmsf/webdav', nil, credentials('admin', 'badpassword') + delete '/dmsf/webdav', :params => nil, :headers => credentials('admin', 'badpassword') assert_response :unauthorized end def test_failed_authentication - delete "/dmsf/webdav/#{@project1.identifier}", nil, credentials('admin', 'badpassword') + delete "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => credentials('admin', 'badpassword') assert_response :unauthorized end def test_root_folder - delete '/dmsf/webdav', nil, @admin + delete '/dmsf/webdav', :params => nil, :headers => @admin assert_response :not_implemented end def test_delete_not_empty_folder - put "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", nil, @admin + put "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", :params => nil, :headers => @admin assert_response :forbidden end def test_not_existed_project - delete '/dmsf/webdav/not_a_project/file.txt', nil, @admin + delete '/dmsf/webdav/not_a_project/file.txt', :params => nil, :headers => @admin assert_response :not_found end def test_dmsf_not_enabled @project1.disable_module! :dmsf - delete "/dmsf/webdav/#{@project1.identifier}/test.txt", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => @jsmith assert_response :not_found # Item does not exist, as project is not enabled. end def test_delete_when_ro Setting.plugin_redmine_dmsf['dmsf_webdav_strategy'] = 'WEBDAV_READ_ONLY' - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, @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. end def test_unlocked_file - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, @admin + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @admin assert_response :no_content @file1.reload assert @file1.deleted?, "File #{@file1.name} hasn't been deleted" end def test_unathorized_user - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith assert_response :not_found # Without folder_view permission, he will not even be aware of its existence. @file1.reload assert !@file1.deleted?, "File #{@file1.name} is expected to exist" @@ -135,7 +135,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_unathorized_user_forbidden @role.add_permission! :view_dmsf_folders - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith assert_response :forbidden # Now jsmith's role has view_folder rights, however they do not hold file manipulation rights. @file1.reload assert !@file1.deleted?, "File #{@file1.name} is expected to exist" @@ -143,7 +143,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_view_folder_not_allowed @role.add_permission! :file_manipulation - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", :params => nil, :headers => @jsmith assert_response :not_found # Without folder_view permission, he will not even be aware of its existence. @folder1.reload assert !@folder1.deleted?, "Folder #{@folder1.title} is expected to exist" @@ -151,14 +151,14 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_folder_manipulation_not_allowed @role.add_permission! :view_dmsf_folders - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", :params => nil, :headers => @jsmith assert_response :forbidden # Without manipulation permission, action is forbidden. @folder1.reload assert !@folder1.deleted?, "Foler #{@folder1.title} is expected to exist" end def test_folder_delete_by_admin - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", nil, @admin + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", :params => nil, :headers => @admin assert_response :success @folder6.reload assert @folder6.deleted?, "Folder #{@folder1.title} is not expected to exist" @@ -167,7 +167,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_folder_delete_by_user @role.add_permission! :view_dmsf_folders @role.add_permission! :folder_manipulation - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", :params => nil, :headers => @jsmith assert_response :success @folder6.reload assert @folder6.deleted?, "Folder #{@folder1.title} is not expected to exist" @@ -177,17 +177,17 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true @role.add_permission! :view_dmsf_folders @role.add_permission! :folder_manipulation - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", :params => nil, :headers => @jsmith assert_response :not_found p1name_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - delete "/dmsf/webdav/#{p1name_uri}/#{@folder6.title}", nil, @jsmith + delete "/dmsf/webdav/#{p1name_uri}/#{@folder6.title}", :params => nil, :headers => @jsmith assert_response :success @folder6.reload assert @folder6.deleted?, "Folder #{@folder1.title} is not expected to exist" end def test_file_delete_by_administrator - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, @admin + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @admin assert_response :success @file1.reload assert @file1.deleted?, "File #{@file1.name} is not expected to exist" @@ -196,7 +196,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_file_delete_by_user @role.add_permission! :view_dmsf_folders @role.add_permission! :file_delete - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith assert_response :success @file1.reload assert @file1.deleted?, "File #{@file1.name} is not expected to exist" @@ -206,10 +206,10 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true @role.add_permission! :view_dmsf_folders @role.add_permission! :file_delete - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith assert_response :not_found p1name_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - delete "/dmsf/webdav/#{p1name_uri}/#{@file1.name}", nil, @jsmith + delete "/dmsf/webdav/#{p1name_uri}/#{@file1.name}", :params => nil, :headers => @jsmith assert_response :success @file1.reload assert @file1.deleted?, "File #{@file1.name} is not expected to exist" @@ -218,7 +218,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_folder_delete_fragments @role.add_permission! :view_dmsf_folders @role.add_permission! :folder_manipulation - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}/#frament=HTTP/1.1", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}/#frament=HTTP/1.1", :params => nil, :headers => @jsmith assert_response :bad_request end @@ -226,7 +226,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest @role.add_permission! :view_dmsf_folders @role.add_permission! :folder_manipulation @folder6.lock! - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", :params => nil, :headers => @jsmith assert_response :locked @folder6.reload assert !@folder6.deleted?, "Folder #{@folder6.title} is expected to exist" @@ -236,7 +236,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest @role.add_permission! :view_dmsf_folders @role.add_permission! :file_delete @file1.lock! - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith assert_response :locked @file1.reload assert !@file1.deleted?, "File #{@file1.name} is expected to exist" @@ -245,7 +245,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_non_versioned_file @role.add_permission! :view_dmsf_folders @role.add_permission! :file_delete - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith assert_response :success # The file should be destroyed assert_nil DmsfFile.visible.find_by(id: @file1.id) diff --git a/test/integration/webdav/dmsf_webdav_get_test.rb b/test/integration/webdav/dmsf_webdav_get_test.rb index 701894e0..d2738b5d 100644 --- a/test/integration/webdav/dmsf_webdav_get_test.rb +++ b/test/integration/webdav/dmsf_webdav_get_test.rb @@ -69,57 +69,57 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest end def test_should_deny_failed_authentication - get '/dmsf/webdav', nil, credentials('admin', 'badpassword') + get '/dmsf/webdav', :params => nil, :headers => credentials('admin', 'badpassword') assert_response :unauthorized end def test_should_permit_authenticated_user - get '/dmsf/webdav', nil, @admin + get '/dmsf/webdav', :params => nil, :headers => @admin assert_response :success end def test_should_list_dmsf_enabled_project - get '/dmsf/webdav', nil, @admin + get '/dmsf/webdav', :params => nil, :headers => @admin assert_response :success assert !response.body.match(@project1.identifier).nil?, "Expected to find project #{@project1.identifier} in return data" Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1) - get '/dmsf/webdav', nil, @admin + get '/dmsf/webdav', :params => nil, :headers => @admin assert_response :success assert_no_match @project1.identifier, response.body assert_match project1_uri, response.body end def test_should_not_list_non_dmsf_enabled_project - get '/dmsf/webdav', nil, @jsmith + get '/dmsf/webdav', :params => nil, :headers => @jsmith assert_response :success assert response.body.match(@project2.identifier).nil?, "Unexpected find of project #{@project2.identifier} in return data" end def test_should_return_status_404_when_project_does_not_exist @project1.enable_module! :dmsf # Flag module enabled - get '/dmsf/webdav/project_does_not_exist', nil, @jsmith + get '/dmsf/webdav/project_does_not_exist', :params => nil, :headers => @jsmith assert_response :not_found end def test_should_return_status_404_when_dmsf_not_enabled - get "/dmsf/webdav/#{@project2.identifier}", nil, @jsmith + get "/dmsf/webdav/#{@project2.identifier}", :params => nil, :headers => @jsmith assert_response :not_found end def test_download_file_from_dmsf_enabled_project - get "/dmsf/webdav/#{@project1.identifier}/test.txt", nil, @admin + get "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => @admin assert_response :success Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - get "/dmsf/webdav/#{@project1.identifier}/test.txt", nil, @admin + get "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => @admin assert_response :not_found - get "/dmsf/webdav/#{project1_uri}/test.txt", nil, @admin + get "/dmsf/webdav/#{project1_uri}/test.txt", :params => nil, :headers => @admin assert_response :success end def test_should_list_dmsf_contents_within_project - get "/dmsf/webdav/#{@project1.identifier}", nil, @admin + get "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin assert_response :success folder = DmsfFolder.find_by(id: 1) assert_not_nil folder @@ -132,13 +132,13 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest end def test_user_assigned_to_project_dmsf_module_not_enabled - get "/dmsf/webdav/#{@project1.identifier}", nil, @jsmith + get "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @jsmith assert_response :not_found end def test_user_assigned_to_project_folder_forbidden @project2.enable_module! :dmsf # Flag module enabled - get "/dmsf/webdav/#{@project2.identifier}", nil, @jsmith + get "/dmsf/webdav/#{@project2.identifier}", :params => nil, :headers => @jsmith assert_response :not_found end @@ -146,14 +146,14 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest @project1.enable_module! :dmsf # Flag module enabled @role.add_permission! :view_dmsf_folders @role.add_permission! :view_dmsf_files - get "/dmsf/webdav/#{@project1.identifier}", nil, @jsmith + get "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @jsmith assert_response :success end def test_user_assigned_to_project_file_forbidden @project1.enable_module! :dmsf # Flag module enabled @role.add_permission! :view_dmsf_folders - get "/dmsf/webdav/#{@project1.identifier}/test.txt", nil, @jsmith + get "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => @jsmith assert_response :forbidden end @@ -161,7 +161,7 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest @project1.enable_module! :dmsf # Flag module enabled @role.add_permission! :view_dmsf_folders @role.add_permission! :view_dmsf_files - get "/dmsf/webdav/#{@project1.identifier}/test.txt", nil, @jsmith + get "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => @jsmith assert_response :success end diff --git a/test/integration/webdav/dmsf_webdav_head_test.rb b/test/integration/webdav/dmsf_webdav_head_test.rb index 962188bb..d14d1b26 100644 --- a/test/integration/webdav/dmsf_webdav_head_test.rb +++ b/test/integration/webdav/dmsf_webdav_head_test.rb @@ -71,13 +71,13 @@ class DmsfWebdavHeadTest < RedmineDmsf::Test::IntegrationTest end def test_head_responds_with_authentication - head "/dmsf/webdav/#{@project1.identifier}", nil, @admin + head "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin assert_response :success check_headers_exist Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - head "/dmsf/webdav/#{@project1.identifier}", nil, @admin + head "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin assert_response :not_found - head "/dmsf/webdav/#{@project1_uri}", nil, @admin + head "/dmsf/webdav/#{@project1_uri}", :params => nil, :headers => @admin assert_response :success end @@ -87,48 +87,48 @@ class DmsfWebdavHeadTest < RedmineDmsf::Test::IntegrationTest # (but may include an etag, so there is an allowance for a 1 in 2 failure rate on (optionally) required # headers) def test_head_responds_to_file - head "/dmsf/webdav/#{@project1.identifier}/test.txt", nil, @admin + head "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => @admin assert_response :success check_headers_exist # Note it'll allow 1 out of the 3 expected to fail Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - head "/dmsf/webdav/#{@project1.identifier}/test.txt", nil, @admin + head "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => @admin assert_response :not_found - head "/dmsf/webdav/#{@project1_uri}/test.txt", nil, @admin + head "/dmsf/webdav/#{@project1_uri}/test.txt", :params => nil, :headers => @admin assert_response :success end def test_head_responds_to_file_anonymous_other_user_agent - head "/dmsf/webdav/#{@project1.identifier}/test.txt", nil, {:HTTP_USER_AGENT => 'Other'} + head "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => {:HTTP_USER_AGENT => 'Other'} assert_response :unauthorized check_headers_dont_exist end def test_head_fails_when_file_not_found - head "/dmsf/webdav/#{@project1.identifier}/not_here.txt", nil, @admin + head "/dmsf/webdav/#{@project1.identifier}/not_here.txt", :params => nil, :headers => @admin assert_response :not_found check_headers_dont_exist end def test_head_fails_when_file_not_found_anonymous_other_user_agent - head "/dmsf/webdav/#{@project1.identifier}/not_here.txt", nil, {:HTTP_USER_AGENT => 'Other'} + head "/dmsf/webdav/#{@project1.identifier}/not_here.txt", :params => nil, :headers => {:HTTP_USER_AGENT => 'Other'} assert_response :unauthorized check_headers_dont_exist end def test_head_fails_when_folder_not_found - head '/dmsf/webdav/folder_not_here', nil, @admin + head '/dmsf/webdav/folder_not_here', :params => nil, :headers => @admin assert_response :not_found check_headers_dont_exist end def test_head_fails_when_folder_not_found_anonymous_other_user_agent - head '/dmsf/webdav/folder_not_here', nil, {:HTTP_USER_AGENT => 'Other'} + head '/dmsf/webdav/folder_not_here', :params => nil, :headers => {:HTTP_USER_AGENT => 'Other'} assert_response :unauthorized check_headers_dont_exist end def test_head_fails_when_project_is_not_enabled_for_dmsf - head "/dmsf/webdav/#{@project2.identifier}/test.txt", nil, @jsmith + head "/dmsf/webdav/#{@project2.identifier}/test.txt", :params => nil, :headers => @jsmith assert_response :not_found check_headers_dont_exist end diff --git a/test/integration/webdav/dmsf_webdav_lock_test.rb b/test/integration/webdav/dmsf_webdav_lock_test.rb index 946dd130..bda56018 100644 --- a/test/integration/webdav/dmsf_webdav_lock_test.rb +++ b/test/integration/webdav/dmsf_webdav_lock_test.rb @@ -57,20 +57,21 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest log_user 'admin', 'admin' # login as admin assert !User.current.anonymous?, 'Current user is anonymous' assert @file1.lock!, "File failed to be locked by #{User.current.name}" - xml_http_request :lock, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", + process :lock, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => %{ jsmith }, - @jsmith.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite' }) + :headers => @jsmith.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite' }) assert_response :locked end def test_lock_file create_time = Time.utc(2000, 1, 2, 3, 4, 5) refresh_time = Time.utc(2000, 1, 2, 6, 7, 8) + locktoken = nil # Time travel, will make the usec part of the time 0 travel_to create_time do @@ -81,8 +82,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest jsmith } - xml_http_request :lock, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", xml, - @jsmith.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite' }) + process :lock, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => xml, + :headers => @jsmith.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite' }) assert_response :success # Verify the response # @@ -113,22 +114,22 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest assert_equal create_time, l.created_at assert_equal create_time, l.updated_at assert_equal (create_time + 1.week), l.expires_at + end - travel_to refresh_time do - # Refresh lock - xml_http_request :lock, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", - nil, - @jsmith.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite', HTTP_IF: locktoken }) - assert_response :success - # 1.week = 7*24*3600=604800 seconds - assert_match 'Second-604800', response.body - # Verify the lock in the db - @file1.reload - l = @file1.lock.first - assert_equal create_time, l.created_at - assert_equal refresh_time, l.updated_at - assert_equal (refresh_time + 1.week), l.expires_at - end + travel_to refresh_time do + # Refresh lock + process :lock, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", + :params => nil, + :headers => @jsmith.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite', HTTP_IF: locktoken }) + assert_response :success + # 1.week = 7*24*3600=604800 seconds + assert_match 'Second-604800', response.body + # Verify the lock in the db + @file1.reload + l = @file1.lock.first + assert_equal create_time, l.created_at + assert_equal refresh_time, l.updated_at + assert_equal (refresh_time + 1.week), l.expires_at end end diff --git a/test/integration/webdav/dmsf_webdav_mkcol_test.rb b/test/integration/webdav/dmsf_webdav_mkcol_test.rb index b23357f1..d4a298b9 100644 --- a/test/integration/webdav/dmsf_webdav_mkcol_test.rb +++ b/test/integration/webdav/dmsf_webdav_mkcol_test.rb @@ -66,28 +66,28 @@ class DmsfWebdavMkcolTest < RedmineDmsf::Test::IntegrationTest end def test_mkcol_requires_authentication - xml_http_request :mkcol, '/dmsf/webdav/test1' + process :mkcol, '/dmsf/webdav/test1' assert_response :unauthorized end def test_mkcol_fails_to_create_folder_at_root_level - xml_http_request :mkcol, '/dmsf/webdav/test1', nil, @admin + process :mkcol, '/dmsf/webdav/test1', :params => nil, :headers => @admin assert_response :method_not_allowed end def test_should_not_succeed_on_a_non_existant_project - xml_http_request :mkcol, '/dmsf/webdav/project_doesnt_exist/test1', nil, @admin + process :mkcol, '/dmsf/webdav/project_doesnt_exist/test1', :params => nil, :headers => @admin assert_response :not_found end def test_should_not_succed_on_a_non_dmsf_enabled_project - xml_http_request :mkcol, "/dmsf/webdav/#{@project1.identifier}/folder", nil, @jsmith + process :mkcol, "/dmsf/webdav/#{@project1.identifier}/folder", :params => nil, :headers => @jsmith assert_response :forbidden end def test_should_not_create_folder_without_permissions @project1.enable_module! :dmsf # Flag module enabled - xml_http_request :mkcol, "/dmsf/webdav/#{@project1.identifier}/folder", nil, @jsmith + process :mkcol, "/dmsf/webdav/#{@project1.identifier}/folder", :params => nil, :headers => @jsmith assert_response :forbidden end @@ -95,27 +95,27 @@ class DmsfWebdavMkcolTest < RedmineDmsf::Test::IntegrationTest @project1.enable_module! :dmsf # Flag module enabled @role.add_permission! :folder_manipulation @role.add_permission! :view_dmsf_folders - xml_http_request :mkcol, - "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", nil, @jsmith + process :mkcol, + "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", :params => nil, :headers => @jsmith assert_response :method_not_allowed end def test_should_fail_to_create_folder_for_user_without_rights @project1.enable_module! :dmsf # Flag module enabled - xml_http_request :mkcol, "/dmsf/webdav/#{@project1.identifier}/test1", nil, @jsmith + process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test1", :params => nil, :headers => @jsmith assert_response :forbidden end def test_should_create_folder_for_non_admin_user_with_rights @project1.enable_module! :dmsf @role.add_permission! :folder_manipulation - xml_http_request :mkcol, "/dmsf/webdav/#{@project1.identifier}/test1", nil, @jsmith + process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test1", :params => nil, :headers => @jsmith assert_response :success # Created Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - xml_http_request :mkcol, "/dmsf/webdav/#{@project1.identifier}/test2", nil, @jsmith + process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test2", :params => nil, :headers => @jsmith assert_response :not_found - xml_http_request :mkcol, "/dmsf/webdav/#{project1_uri}/test3", nil, @jsmith + process :mkcol, "/dmsf/webdav/#{project1_uri}/test3", :params => nil, :headers => @jsmith assert_response :success # Created end diff --git a/test/integration/webdav/dmsf_webdav_move_test.rb b/test/integration/webdav/dmsf_webdav_move_test.rb index e904c440..4060e5d5 100644 --- a/test/integration/webdav/dmsf_webdav_move_test.rb +++ b/test/integration/webdav/dmsf_webdav_move_test.rb @@ -75,8 +75,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest def test_move_denied_for_anonymous new_name = "#{@file1.name}.moved" assert_no_difference '@file1.dmsf_file_revisions.count' do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, - {:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"} + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, + :headers => {:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"} assert_response :unauthorized end end @@ -85,8 +85,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest @role.remove_permission! :folder_manipulation new_name = "#{@file1.name}.moved" assert_no_difference '@file1.dmsf_file_revisions.count' do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) assert_response :forbidden end end @@ -95,8 +95,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest @role.remove_permission! :folder_manipulation new_name = "#{@file1.name}.moved" assert_difference '@file1.dmsf_file_revisions.count', +1 do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, - @admin.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, + :headers => @admin.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) assert_response :created f = DmsfFile.find_file_by_name @project1, nil, "#{new_name}" assert f, "Moved file '#{new_name}' not found in project." @@ -104,16 +104,16 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest end def test_move_non_existent_file - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/not_a_file.txt", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/moved_file.txt"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/not_a_file.txt", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/moved_file.txt"}) assert_response :not_found # NotFound end def test_move_to_new_filename new_name = "#{@file1.name}.moved" assert_difference '@file1.dmsf_file_revisions.count', +1 do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) assert_response :created f = DmsfFile.find_file_by_name @project1, nil, "#{new_name}" assert f, "Moved file '#{new_name}' not found in project." @@ -125,8 +125,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) new_name = "#{@file1.name}.moved" assert_difference '@file1.dmsf_file_revisions.count', +1 do - xml_http_request :move, "/dmsf/webdav/#{project1_uri}/#{@file1.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{project1_uri}/#{new_name}"}) + process :move, "/dmsf/webdav/#{project1_uri}/#{@file1.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{project1_uri}/#{new_name}"}) assert_response :created f = DmsfFile.find_file_by_name @project1, nil, "#{new_name}" assert f, "Moved file '#{new_name}' not found in project." @@ -136,8 +136,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest def test_move_zero_sized_to_new_filename new_name = "#{@file10.name}.moved" assert_no_difference '@file10.dmsf_file_revisions.count' do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file10.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file10.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) assert_response :created f = DmsfFile.find_file_by_name @project1, nil, "#{new_name}" assert f, "Moved file '#{new_name}' not found in project." @@ -146,8 +146,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest def test_move_to_new_folder assert_difference '@file1.dmsf_file_revisions.count', +1 do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}/#{@file1.name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}/#{@file1.name}"}) assert_response :created @file1.reload assert_equal @folder1.id, @file1.dmsf_folder_id @@ -158,8 +158,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) assert_difference '@file1.dmsf_file_revisions.count', +1 do - xml_http_request :move, "/dmsf/webdav/#{project1_uri}/#{@file1.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{project1_uri}/#{@folder1.title}/#{@file1.name}"}) + process :move, "/dmsf/webdav/#{project1_uri}/#{@file1.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{project1_uri}/#{@folder1.title}/#{@file1.name}"}) assert_response :created @file1.reload assert_equal @folder1.id, @file1.dmsf_folder_id @@ -168,8 +168,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest def test_move_zero_sized_to_new_folder assert_no_difference '@file10.dmsf_file_revisions.count' do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file10.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}/#{@file10.name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file10.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}/#{@file10.name}"}) assert_response :created @file10.reload assert_equal @folder1.id, @file10.dmsf_folder_id @@ -182,8 +182,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest new_name = "#{file9.name}" assert_no_difference 'file9.dmsf_file_revisions.count' do assert_no_difference '@file1.dmsf_file_revisions.count' do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) assert_response :not_implemented # NotImplemented end end @@ -195,8 +195,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest assert @file1.lock!, "File failed to be locked by #{User.current.name}" new_name = "#{@file1.name}.moved" assert_no_difference '@file1.dmsf_file_revisions.count' do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) assert_response :locked end end @@ -208,8 +208,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest new_name = "#{@file1.name}.moved" assert_no_difference '@file1.dmsf_file_revisions.count' do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, - @admin.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, + :headers => @admin.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) assert_response :locked end end @@ -222,15 +222,15 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest # Move once new_name = "#{@file1.name}.m1" assert_difference '@file1.dmsf_file_revisions.count', +1 do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name}"}) assert_response :success # Created end # Move twice, make sure that the MsOffice store sequence is not disrupting normal move new_name2 = "#{new_name}.m2" assert_difference '@file1.dmsf_file_revisions.count', +1 do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{new_name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name2}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{new_name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{new_name2}"}) assert_response :success # Created end end @@ -255,8 +255,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest # Move the original file to AAAAAAAA.tmp. The original file should not changed but a new file should be created. assert_no_difference '@file1.dmsf_file_revisions.count' do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{temp_file_name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{temp_file_name}"}) assert_response :success # Created end @@ -268,8 +268,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest # Move a temporary file (use AAAAAAAA.tmp) to the original file. assert_difference '@file1.dmsf_file_revisions.count', +1 do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{temp_file_name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@file1.name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{temp_file_name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@file1.name}"}) assert_response :success # Created end @@ -282,8 +282,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest # Move the original file to BBBBBBBB.tmp. The original file should not change but a new file should be created. assert_no_difference '@file1.dmsf_file_revisions.count' do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{temp_file_name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{temp_file_name}"}) assert_response :success # Created end @@ -295,8 +295,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest # Move a temporary file (use BBBBBBBB.tmp) to the original file. assert_no_difference '@file1.dmsf_file_revisions.count' do - xml_http_request :move, "/dmsf/webdav/#{@project1.identifier}/#{temp_file_name}", nil, - @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@file1.name}"}) + process :move, "/dmsf/webdav/#{@project1.identifier}/#{temp_file_name}", :params => nil, + :headers => @jsmith.merge!({:destination => "http://www.example.com/dmsf/webdav/#{@project1.identifier}/#{@file1.name}"}) assert_response :success # Created end end diff --git a/test/integration/webdav/dmsf_webdav_options_test.rb b/test/integration/webdav/dmsf_webdav_options_test.rb index dcaea560..38e77d62 100644 --- a/test/integration/webdav/dmsf_webdav_options_test.rb +++ b/test/integration/webdav/dmsf_webdav_options_test.rb @@ -51,13 +51,13 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest end def test_options_requires_no_authentication_for_root_level - xml_http_request :options, '/dmsf/webdav' + process :options, '/dmsf/webdav' assert_response :success end def test_options_returns_expected_allow_header_for_ro Setting.plugin_redmine_dmsf['dmsf_webdav_strategy'] = 'WEBDAV_READ_ONLY' - xml_http_request :options, '/dmsf/webdav' + process :options, '/dmsf/webdav' assert_response :success assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert response.headers['Allow'] , 'Allow header is empty or does not exist' @@ -65,7 +65,7 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest end def test_options_returns_expected_allow_header_for_rw - xml_http_request :options, '/dmsf/webdav' + process :options, '/dmsf/webdav' assert_response :success assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert response.headers['Allow'] , 'Allow header is empty or does not exist' @@ -74,14 +74,14 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest end def test_options_returns_expected_dav_header - xml_http_request :options, '/dmsf/webdav' + process :options, '/dmsf/webdav' assert_response :success assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert response.headers['Dav'] , 'Dav header is empty or does not exist' end def test_options_returns_expected_ms_auth_via_header - xml_http_request :options, '/dmsf/webdav' + process :options, '/dmsf/webdav' assert_response :success assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert response.headers['Ms-Author-Via'] , 'Ms-Author-Via header is empty or does not exist' @@ -89,33 +89,33 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest end def test_options_requires_authentication_for_non_root_request - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}" + process :options, "/dmsf/webdav/#{@project1.identifier}" assert_response :unauthorized end def test_un_authenticated_options_returns_expected_allow_header - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}" + process :options, "/dmsf/webdav/#{@project1.identifier}" assert_response :unauthorized assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert_nil response.headers['Allow'] , 'Allow header should not exist' end def test_un_authenticated_options_returns_expected_dav_header - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}" + process :options, "/dmsf/webdav/#{@project1.identifier}" assert_response :unauthorized assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert_nil response.headers['Dav'] , 'Dav header should not exist' end def test_un_authenticated_options_returns_expected_ms_auth_via_header - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}" + process :options, "/dmsf/webdav/#{@project1.identifier}" assert_response :unauthorized assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert_nil response.headers['Ms-Author-Via'] , 'Ms-Author-Via header should not exist' end def test_authenticated_options_returns_expected_allow_header - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}", nil, @jsmith + process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @jsmith assert_response :success assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert response.headers['Allow'], 'Allow header is empty or does not exist' @@ -124,14 +124,14 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest end def test_authenticated_options_returns_expected_dav_header - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}", nil, @jsmith + process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @jsmith assert_response :success assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert response.headers['Dav'], 'Dav header is empty or does not exist' end def test_authenticated_options_returns_expected_ms_auth_via_header - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}", nil, @jsmith + process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @jsmith assert_response :success assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert response.headers['Ms-Author-Via'], 'Ms-Author-Via header is empty or does not exist' @@ -139,40 +139,40 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest end def test_un_authenticated_options_for_msoffice_user_agent - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}", nil, {:HTTP_USER_AGENT => 'Microsoft Office Word 2014'} + process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => {:HTTP_USER_AGENT => 'Microsoft Office Word 2014'} assert_response :unauthorized end def test_authenticated_options_for_msoffice_user_agent - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}", nil, - @admin.merge!({:HTTP_USER_AGENT => 'Microsoft Office Word 2014'}) + process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, + :headers => @admin.merge!({:HTTP_USER_AGENT => 'Microsoft Office Word 2014'}) assert_response :success end def test_un_authenticated_options_for_other_user_agent - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}", nil, {:HTTP_USER_AGENT => 'Other'} + process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => {:HTTP_USER_AGENT => 'Other'} assert_response :unauthorized end def test_authenticated_options_for_other_user_agent - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}", nil, @admin.merge!({:HTTP_USER_AGENT => 'Other'}) + process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_USER_AGENT => 'Other'}) assert_response :success Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - xml_http_request :options, "/dmsf/webdav/#{@project1.identifier}", nil, @admin.merge!({:HTTP_USER_AGENT => 'Other'}) + process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_USER_AGENT => 'Other'}) assert_response :not_found - xml_http_request :options, "/dmsf/webdav/#{project1_uri}", nil, @admin.merge!({:HTTP_USER_AGENT => 'Other'}) + process :options, "/dmsf/webdav/#{project1_uri}", :params => nil, :headers => @admin.merge!({:HTTP_USER_AGENT => 'Other'}) assert_response :success end def test_authenticated_options_returns_404_for_non_dmsf_enabled_items @project2.disable_module! :dmsf - xml_http_request :options, "/dmsf/webdav/#{@project2.identifier}", nil, @jsmith + process :options, "/dmsf/webdav/#{@project2.identifier}", :params => nil, :headers => @jsmith assert_response :not_found end def test_authenticated_options_returns_404_for_not_found - xml_http_request :options, '/dmsf/webdav/does-not-exist', nil, @jsmith + process :options, '/dmsf/webdav/does-not-exist', :params => nil, :headers => @jsmith assert_response :not_found end diff --git a/test/integration/webdav/dmsf_webdav_post_test.rb b/test/integration/webdav/dmsf_webdav_post_test.rb index 72ff6160..b7ec4fa8 100644 --- a/test/integration/webdav/dmsf_webdav_post_test.rb +++ b/test/integration/webdav/dmsf_webdav_post_test.rb @@ -43,7 +43,7 @@ class DmsfWebdavPostTest < RedmineDmsf::Test::IntegrationTest # Test post is not implemented def test_post_not_implemented - post '/dmsf/webdav/', nil, @admin + post '/dmsf/webdav/', :params => nil, :headers => @admin assert_response :not_implemented end diff --git a/test/integration/webdav/dmsf_webdav_propfind_test.rb b/test/integration/webdav/dmsf_webdav_propfind_test.rb index 8b0bcb82..348bd355 100644 --- a/test/integration/webdav/dmsf_webdav_propfind_test.rb +++ b/test/integration/webdav/dmsf_webdav_propfind_test.rb @@ -63,26 +63,26 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest end def test_propfind_denied_for_anonymous - xml_http_request :propfind, '/dmsf/webdav/', nil, {:HTTP_DEPTH => '0'} + process :propfind, '/dmsf/webdav/', :params => nil, :headers => {:HTTP_DEPTH => '0'} assert_response :unauthorized end def test_propfind_depth0_on_root_for_non_member - xml_http_request :propfind, '/dmsf/webdav/', nil, @jsmith.merge!({:HTTP_DEPTH => '0'}) + process :propfind, '/dmsf/webdav/', :params => nil, :headers => @jsmith.merge!({:HTTP_DEPTH => '0'}) assert_response :multi_status assert response.body.include?('http://www.example.com:80/dmsf/webdav/') assert response.body.include?('/') end def test_propfind_depth1_on_root_for_non_member - xml_http_request :propfind, '/dmsf/webdav/', nil, @jsmith.merge!({:HTTP_DEPTH => '1'}) + process :propfind, '/dmsf/webdav/', :params => nil, :headers => @jsmith.merge!({:HTTP_DEPTH => '1'}) assert_response :multi_status assert response.body.include?('http://www.example.com:80/dmsf/webdav/') assert response.body.include?( '/') end def test_propfind_depth0_on_root_for_admin - xml_http_request :propfind, '/dmsf/webdav/', nil, @admin.merge!({:HTTP_DEPTH => '0'}) + process :propfind, '/dmsf/webdav/', :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '0'}) assert_response :multi_status assert response.body.include?('http://www.example.com:80/dmsf/webdav/') assert response.body.include?('/') @@ -90,7 +90,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest def test_propfind_depth1_on_root_for_admin_with_project_names Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - xml_http_request :propfind, '/dmsf/webdav/', nil, @admin.merge!({:HTTP_DEPTH => '1'}) + process :propfind, '/dmsf/webdav/', :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '1'}) assert_response :multi_status assert response.body.include?('http://www.example.com:80/dmsf/webdav/') assert response.body.include?('/') @@ -103,12 +103,12 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest end def test_propfind_depth0_on_project1_for_non_member - xml_http_request :propfind, "/dmsf/webdav/#{@project1.identifier}", nil, @jsmith.merge!({:HTTP_DEPTH => '0'}) + process :propfind, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @jsmith.merge!({:HTTP_DEPTH => '0'}) assert_response :not_found end def test_propfind_depth0_on_project1_for_admin - xml_http_request :propfind, "/dmsf/webdav/#{@project1.identifier}", nil, @admin.merge!({:HTTP_DEPTH => '0'}) + process :propfind, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '0'}) assert_response :multi_status assert response.body.include?("http://www.example.com:80/dmsf/webdav/#{@project1.identifier}/") assert response.body.include?("#{@project1.identifier}") @@ -116,16 +116,16 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest def test_propfind_depth0_on_project1_for_admin_with_project_names Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - xml_http_request :propfind, "/dmsf/webdav/#{@project1.identifier}", nil, @admin.merge!({:HTTP_DEPTH => '0'}) + process :propfind, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '0'}) assert_response :not_found - xml_http_request :propfind, "/dmsf/webdav/#{@project1_uri}", nil, @admin.merge!({:HTTP_DEPTH => '0'}) + process :propfind, "/dmsf/webdav/#{@project1_uri}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '0'}) assert_response :multi_status assert response.body.include?("http://www.example.com:80/dmsf/webdav/#{@project1_uri}/") assert response.body.include?("#{@project1_name}") end def test_propfind_depth1_on_project1_for_admin - xml_http_request :propfind, "/dmsf/webdav/#{@project1.identifier}", nil, @admin.merge!({:HTTP_DEPTH => '1'}) + process :propfind, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '1'}) assert_response :multi_status # Project assert response.body.include?("http://www.example.com:80/dmsf/webdav/#{@project1.identifier}/") @@ -146,9 +146,9 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest def test_propfind_depth1_on_project1_for_admin_with_project_names Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - xml_http_request :propfind, "/dmsf/webdav/#{@project1.identifier}", nil, @admin.merge!({:HTTP_DEPTH => '1'}) + process :propfind, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '1'}) assert_response :not_found - xml_http_request :propfind, "/dmsf/webdav/#{@project1_uri}", nil, @admin.merge!({:HTTP_DEPTH => '1'}) + process :propfind, "/dmsf/webdav/#{@project1_uri}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '1'}) assert_response :multi_status # Project assert response.body.include?("http://www.example.com:80/dmsf/webdav/#{@project1_uri}/") @@ -171,7 +171,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest @project1.save! project1_new_name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1) project1_new_uri = Addressable::URI.escape(project1_new_name) - xml_http_request :propfind, "/dmsf/webdav/#{project1_new_uri}", nil, @admin.merge!({:HTTP_DEPTH => '1'}) + process :propfind, "/dmsf/webdav/#{project1_new_uri}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '1'}) assert_response :multi_status assert response.body.include?("http://www.example.com:80/dmsf/webdav/#{project1_new_uri}/") assert response.body.include?("#{project1_new_name}") diff --git a/test/integration/webdav/dmsf_webdav_put_test.rb b/test/integration/webdav/dmsf_webdav_put_test.rb index f85a0584..e57ae4fe 100644 --- a/test/integration/webdav/dmsf_webdav_put_test.rb +++ b/test/integration/webdav/dmsf_webdav_put_test.rb @@ -74,46 +74,46 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest end def test_put_denied_with_failed_authentication_root - put '/dmsf/webdav', nil, credentials('admin', 'badpassword') + put '/dmsf/webdav', :params => nil, :headers => credentials('admin', 'badpassword') assert_response :unauthorized end def test_put_denied_with_failed_authentication - put "/dmsf/webdav/#{@project1.identifier}", nil, credentials('admin', 'badpassword') + put "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => credentials('admin', 'badpassword') assert_response :unauthorized end def test_put_denied_at_root_level - put '/dmsf/webdav/test.txt', '1234', @admin.merge!({:content_type => :text}) + put '/dmsf/webdav/test.txt', :params => '1234', :headers => @admin.merge!({:content_type => :text}) assert_response :not_implemented end def test_put_denied_on_folder - put "/dmsf/webdav/#{@project1.identifier}", '1234', @admin.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}", :params => '1234', :headers => @admin.merge!({:content_type => :text}) assert_response :forbidden end def test_put_failed_on_non_existant_project - put '/dmsf/webdav/not_a_project/file.txt', '1234', @admin.merge!({:content_type => :text}) + put '/dmsf/webdav/not_a_project/file.txt', :params => '1234', :headers => @admin.merge!({:content_type => :text}) assert_response :conflict # not_a_project does not exist - file.txt cannot be created end def test_put_as_admin_granted_on_dmsf_enabled_project - put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", '1234', @admin.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", :params => '1234', :headers => @admin.merge!({:content_type => :text}) assert_response :created # Lets check for our file file = DmsfFile.find_file_by_name @project1, nil, 'test-1234.txt' assert file, 'Check for files existance' Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", '1234', @admin.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", :params => '1234', :headers => @admin.merge!({:content_type => :text}) assert_response :conflict - put "/dmsf/webdav/#{project1_uri}/test-1234.txt", '1234', @admin.merge!({:content_type => :text}) + put "/dmsf/webdav/#{project1_uri}/test-1234.txt", :params => '1234', :headers => @admin.merge!({:content_type => :text}) assert_response :created end def test_put_failed_as_jsmith_on_non_dmsf_enabled_project - put "/dmsf/webdav/#{@project2.identifier}/test-1234.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project2.identifier}/test-1234.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :conflict # Should report conflict, as project 2 technically doesn't exist if not enabled # Lets check for our file file = DmsfFile.find_file_by_name @project2, nil, 'test-1234.txt' @@ -122,14 +122,14 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest def test_put_failed_when_no_permission @project2.enable_module! :dmsf # Flag module enabled - put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :conflict # We don't hold the permission view_dmsf_folders, and thus project 2 doesn't exist to us. end def test_put_failed_when_no_file_manipulation_permission @project1.enable_module! :dmsf # Flag module enabled @role.add_permission! :view_dmsf_folders - put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :forbidden # We don't hold the permission file_manipulation - so we're unable to do anything with files end @@ -137,7 +137,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest @project1.enable_module! :dmsf # Flag module enabled @role.add_permission! :file_manipulation # Check we don't have write access even if we do have the file_manipulation permission - put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :conflict # We don't hold the permission view_dmsf_folders, and thus project 2 doesn't exist to us. # Lets check for our file file = DmsfFile.find_file_by_name @project1, nil, 'test-1234.txt' @@ -148,7 +148,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest @project1.enable_module! :dmsf # Flag module enabled @role.add_permission! :view_dmsf_folders @role.add_permission! :file_manipulation - put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :created # Now we have permissions # Lets check for our file file = DmsfFile.find_file_by_name @project1, nil, 'test-1234.txt' @@ -157,9 +157,9 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest assert_equal file.last_revision.digest_type, 'SHA256' Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test-1234.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :conflict - put "/dmsf/webdav/#{project1_uri}/test-1234.txt", '1234', @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 end @@ -170,7 +170,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest file = DmsfFile.find_file_by_name @project1, nil, 'test.txt' assert_not_nil file, 'test.txt file not found' assert_difference 'file.dmsf_file_revisions.count', +1 do - put "/dmsf/webdav/#{@project1.identifier}/test.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :created end end @@ -184,7 +184,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest file = DmsfFile.find_file_by_name @project1, nil, 'test.txt' assert file.lock!, "File failed to be locked by #{User.current.name}" assert_no_difference 'file.dmsf_file_revisions.count' do - put "/dmsf/webdav/#{@project1.identifier}/test.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :locked end end @@ -198,7 +198,7 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest file = DmsfFile.find_file_by_name @project1, nil, 'test.txt' assert file.lock!, "File failed to be locked by #{User.current.name}" assert_no_difference 'file.dmsf_file_revisions.count' do - put "/dmsf/webdav/#{@project1.identifier}/test.txt", '1234', @admin.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => '1234', :headers => @admin.merge!({:content_type => :text}) assert_response :locked end end @@ -216,12 +216,12 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest # First PUT should always create new revision. assert_difference 'file.dmsf_file_revisions.count', +1 do - put "/dmsf/webdav/#{@project1.identifier}/test.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :created end # Second PUT on a locked file should only update the revision that were created on the first PUT assert_no_difference 'file.dmsf_file_revisions.count' do - put "/dmsf/webdav/#{@project1.identifier}/test.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :created end # Unlock @@ -237,12 +237,12 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest # First PUT should always create new revision. assert_difference 'file.dmsf_file_revisions.count', +1 do - put "/dmsf/webdav/#{@project1.identifier}/test.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :created end # Second PUT on a locked file should only update the revision that were created on the first PUT assert_no_difference 'file.dmsf_file_revisions.count' do - put "/dmsf/webdav/#{@project1.identifier}/test.txt", '1234', @jsmith.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => '1234', :headers => @jsmith.merge!({:content_type => :text}) assert_response :created end end @@ -252,15 +252,15 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest @project1.enable_module! :dmsf @role.add_permission! :view_dmsf_folders @role.add_permission! :file_manipulation - put "/dmsf/webdav/#{@project1.identifier}/._test.txt", '1234', @admin.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/._test.txt", :params => '1234', :headers => @admin.merge!({:content_type => :text}) assert_response :no_content - put "/dmsf/webdav/#{@project1.identifier}/.DS_Store", '1234', @admin.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/.DS_Store", :params => '1234', :headers => @admin.merge!({:content_type => :text}) assert_response :no_content - put "/dmsf/webdav/#{@project1.identifier}/Thumbs.db", '1234', @admin.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/Thumbs.db", :params => '1234', :headers => @admin.merge!({:content_type => :text}) assert_response :no_content original = Setting.plugin_redmine_dmsf['dmsf_webdav_ignore'] Setting.plugin_redmine_dmsf['dmsf_webdav_ignore'] = '.dump$' - put "/dmsf/webdav/#{@project1.identifier}/test.dump", '1234', @admin.merge!({:content_type => :text}) + put "/dmsf/webdav/#{@project1.identifier}/test.dump", :params => '1234', :headers => @admin.merge!({:content_type => :text}) assert_response :no_content Setting.plugin_redmine_dmsf['dmsf_webdav_ignore'] = original end @@ -271,44 +271,44 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest @role.add_permission! :file_manipulation credentials = @admin.merge!({ content_type: :text }) - put "/dmsf/webdav/#{@project1.identifier}/file1.tmp", '1234', credentials + put "/dmsf/webdav/#{@project1.identifier}/file1.tmp", :params => '1234', :headers => credentials assert_response :success file1 = DmsfFile.find_by(project_id: @project1.id, dmsf_folder: nil, name: 'file1.tmp') assert file1 assert_difference 'file1.dmsf_file_revisions.count', 0 do - put "/dmsf/webdav/#{@project1.identifier}/file1.tmp", '5678', credentials + put "/dmsf/webdav/#{@project1.identifier}/file1.tmp", :params => '5678', :headers => credentials assert_response :created end assert_difference 'file1.dmsf_file_revisions.count', 0 do - put "/dmsf/webdav/#{@project1.identifier}/file1.tmp", '9ABC', credentials + put "/dmsf/webdav/#{@project1.identifier}/file1.tmp", :params => '9ABC', :headers => credentials assert_response :created end - put "/dmsf/webdav/#{@project1.identifier}/~$file2.txt", '1234', credentials + put "/dmsf/webdav/#{@project1.identifier}/~$file2.txt", :params => '1234', :headers => credentials assert_response :success file2 = DmsfFile.find_by(project_id: @project1.id, dmsf_folder_id: nil, name: '~$file2.txt') assert file2 assert_difference 'file2.dmsf_file_revisions.count', 0 do - put "/dmsf/webdav/#{@project1.identifier}/~$file2.txt", '5678', credentials + put "/dmsf/webdav/#{@project1.identifier}/~$file2.txt", :params => '5678', :headers => credentials assert_response :created end assert_difference 'file2.dmsf_file_revisions.count', 0 do - put "/dmsf/webdav/#{@project1.identifier}/~$file2.txt", '9ABC', credentials + put "/dmsf/webdav/#{@project1.identifier}/~$file2.txt", :params => '9ABC', :headers => credentials assert_response :created end original = Setting.plugin_redmine_dmsf['dmsf_webdav_disable_versioning'] Setting.plugin_redmine_dmsf['dmsf_webdav_disable_versioning'] = '.dump$' - put "/dmsf/webdav/#{@project1.identifier}/file3.dump", '1234', credentials + put "/dmsf/webdav/#{@project1.identifier}/file3.dump", :params => '1234', :headers => credentials assert_response :success file3 = DmsfFile.find_by(project_id: @project1.id, dmsf_folder_id: nil, name: 'file3.dump') assert file3 assert_difference 'file3.dmsf_file_revisions.count', 0 do - put "/dmsf/webdav/#{@project1.identifier}/file3.dump", '5678', credentials + put "/dmsf/webdav/#{@project1.identifier}/file3.dump", :params => '5678', :headers => credentials assert_response :created end assert_difference 'file3.dmsf_file_revisions.count', 0 do - put "/dmsf/webdav/#{@project1.identifier}/file3.dump", '9ABC', credentials + put "/dmsf/webdav/#{@project1.identifier}/file3.dump", :params => '9ABC', :headers => credentials assert_response :created end Setting.plugin_redmine_dmsf['dmsf_webdav_disable_versioning'] = original diff --git a/test/unit/dmsf_mailer_test.rb b/test/unit/dmsf_mailer_test.rb index fb97f19a..3319a904 100644 --- a/test/unit/dmsf_mailer_test.rb +++ b/test/unit/dmsf_mailer_test.rb @@ -42,14 +42,14 @@ class DmsfMailerTest < RedmineDmsf::Test::UnitTest end def test_files_updated - email = DmsfMailer.files_updated(@user2, @file1.project, [@file1]).deliver + email = DmsfMailer.files_updated(@user2, @file1.project, [@file1]).deliver_now assert email assert text_part(email).body.include? @file1.project.name assert html_part(email).body.include? @file1.project.name end def test_files_deleted - email = DmsfMailer.files_deleted(@user2, @file1.project, [@file1]).deliver + email = DmsfMailer.files_deleted(@user2, @file1.project, [@file1]).deliver_now assert email assert text_part(email).body.include? @file1.project.name assert html_part(email).body.include? @file1.project.name @@ -64,7 +64,7 @@ class DmsfMailerTest < RedmineDmsf::Test::UnitTest email_params[:expired_at] = Date.today email_params[:folders] = nil email_params[:files] = "[\"#{@file1.id}\"]" - email = DmsfMailer.send_documents(@file1.project, email_params).deliver + email = DmsfMailer.send_documents(@user2, @file1.project, email_params) assert email assert text_part(email).body.include? body assert html_part(email).body.include? body @@ -72,7 +72,7 @@ class DmsfMailerTest < RedmineDmsf::Test::UnitTest def test_workflow_notification email = DmsfMailer.workflow_notification(@user2, @wf1, @rev2, :text_email_subject_started, :text_email_started, - :text_email_to_proceed) + :text_email_to_proceed).deliver_now assert email assert text_part(email).body.include? l(:text_email_subject_started) assert html_part(email).body.include? l(:text_email_subject_started) From 6e64842e1ac82c77fdcc5996f67dcff82ed3516c Mon Sep 17 00:00:00 2001 From: pavel Date: Tue, 11 Dec 2018 01:22:33 +0100 Subject: [PATCH 2/2] gem --- Gemfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Gemfile b/Gemfile index d9294841..87cb0d19 100644 --- a/Gemfile +++ b/Gemfile @@ -35,3 +35,7 @@ end # Dav4Rack gem 'ox' + +group :test do + gem 'rails-controller-testing' +end \ No newline at end of file