unit tests
This commit is contained in:
parent
fbe8311260
commit
8081983b4d
@ -33,11 +33,13 @@ class DmsfLink < ActiveRecord::Base
|
||||
validate :validate_url
|
||||
|
||||
def validate_url
|
||||
begin
|
||||
URI.parse self.external_url
|
||||
rescue URI::InvalidURIError
|
||||
errors.add :external_url, :invalid
|
||||
end
|
||||
if self.target_type == 'DmsfUrl'
|
||||
begin
|
||||
URI.parse self.external_url
|
||||
rescue URI::InvalidURIError
|
||||
errors.add :external_url, :invalid
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
# encoding: utf-8
|
||||
#
|
||||
# Redmine plugin for Document Management System "Features"
|
||||
#
|
||||
# Copyright (C) 2011-14 Karel Pičman <karel.picman@lbcfree.net>
|
||||
# Copyright (C) 2011-15 Karel Pičman <karel.picman@lbcfree.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@ -175,7 +177,7 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase
|
||||
assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id)
|
||||
|
||||
# 2. Folder link in a folder from another root folder
|
||||
assert_difference 'DmsfLink.count', +0 do
|
||||
assert_difference 'DmsfLink.count', +1 do
|
||||
post :create, :dmsf_link => {
|
||||
:project_id => @project1.id,
|
||||
:dmsf_folder_id => @folder1.id,
|
||||
@ -184,7 +186,7 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase
|
||||
:type => 'link_from'
|
||||
}
|
||||
end
|
||||
assert_response :success
|
||||
assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id)
|
||||
|
||||
# 3. Folder link in a root folder from another folder
|
||||
assert_difference 'DmsfLink.count', +1 do
|
||||
@ -199,7 +201,7 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase
|
||||
assert_redirected_to dmsf_folder_path(:id => @project1.id)
|
||||
|
||||
# 4. Folder link in a root folder from another root folder
|
||||
assert_difference 'DmsfLink.count', +0 do
|
||||
assert_difference 'DmsfLink.count', +1 do
|
||||
post :create, :dmsf_link => {
|
||||
:project_id => @project1.id,
|
||||
:target_project_id => @project2.id,
|
||||
@ -207,7 +209,7 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase
|
||||
:type => 'link_from'
|
||||
}
|
||||
end
|
||||
assert_response :success
|
||||
assert_redirected_to dmsf_folder_path(:id => @project1.id)
|
||||
end
|
||||
|
||||
def test_create_file_link_to
|
||||
@ -264,6 +266,19 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase
|
||||
assert_redirected_to dmsf_file_path(@file6)
|
||||
end
|
||||
|
||||
def test_create_external_link_from
|
||||
assert_difference 'DmsfLink.count', +1 do
|
||||
post :create, :dmsf_link => {
|
||||
:project_id => @project1.id,
|
||||
:target_project_id => @project1.id,
|
||||
:name => 'file_link',
|
||||
:external_link => 'true',
|
||||
:type => 'link_from'
|
||||
}
|
||||
end
|
||||
assert_redirected_to dmsf_folder_path(:id => @project1.id)
|
||||
end
|
||||
|
||||
def test_create_folder_link_to
|
||||
# 1. Folder link to a root folder
|
||||
assert_difference 'DmsfLink.count', +1 do
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
# encoding: utf-8
|
||||
#
|
||||
# Redmine plugin for Document Management System "Features"
|
||||
#
|
||||
# Copyright (C) 2013 Karel Picman <karel.picman@kontron.com>
|
||||
# Copyright (C) 2011-15 Karel Pičman <karel.picman@kontron.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@ -28,11 +30,12 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase
|
||||
def setup
|
||||
@user_admin = User.find_by_id 1 # Redmine admin
|
||||
@user_member = User.find_by_id 2 # John Smith - manager
|
||||
@user_non_member = User.find_by_id 3 #Dave Lopper
|
||||
@user_non_member = User.find_by_id 3 # Dave Lopper
|
||||
@request.session[:user_id] = @user_member.id
|
||||
@role_manager = Role.find_by_name('Manager')
|
||||
@role_manager.add_permission! :file_manipulation
|
||||
@role_manager.add_permission! :manage_workflows
|
||||
@role_manager.add_permission! :file_approval
|
||||
@wfs1 = DmsfWorkflowStep.find_by_id 1 # step 1
|
||||
@wfs2 = DmsfWorkflowStep.find_by_id 2 # step 2
|
||||
@wfs3 = DmsfWorkflowStep.find_by_id 3 # step 1
|
||||
@ -96,11 +99,11 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase
|
||||
@role_manager.remove_permission! :manage_workflows
|
||||
get :index, :project_id => @project1.id
|
||||
assert_response :forbidden
|
||||
@role_manager.add_permission! :manage_workflows
|
||||
@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
|
||||
assert_response :redirect
|
||||
@role_manager.remove_permission! :file_manipulation
|
||||
@role_manager.remove_permission! :file_approval
|
||||
get :start, :id => @revision2.dmsf_workflow_id,:dmsf_file_revision_id => @revision2.id
|
||||
assert_response :forbidden
|
||||
|
||||
@ -131,13 +134,13 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase
|
||||
|
||||
def test_create
|
||||
assert_difference 'DmsfWorkflow.count', +1 do
|
||||
post :create, :name => 'wf3', :project_id => @project1.id
|
||||
post :create, :dmsf_workflow => {:name => 'wf3'}, :project_id => @project1.id
|
||||
end
|
||||
assert_redirected_to settings_project_path(@project1, :tab => 'dmsf_workflow')
|
||||
end
|
||||
|
||||
def test_update
|
||||
put :update, :id => @wf1.id, :name => 'wf1a'
|
||||
put :update, :id => @wf1.id, :dmsf_workflow => {:name => 'wf1a'}
|
||||
@wf1.reload
|
||||
assert_equal 'wf1a', @wf1.name
|
||||
end
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
# encoding: utf-8
|
||||
#
|
||||
# Redmine plugin for Document Management System "Features"
|
||||
#
|
||||
# Copyright (C) 2011-14 Karel Pičman <karel.picman@lbcfree.net>
|
||||
# Copyright (C) 2011-15 Karel Pičman <karel.picman@lbcfree.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@ -53,7 +55,7 @@ class DmsfLinksTest < RedmineDmsf::Test::UnitTest
|
||||
:project_id => @project1.id,
|
||||
:created_at => DateTime.now(),
|
||||
:updated_at => DateTime.now())
|
||||
assert folder_link.save
|
||||
assert folder_link.save, folder_link.errors.full_messages.to_sentence
|
||||
|
||||
# File link
|
||||
file_link = DmsfLink.new(
|
||||
@ -64,7 +66,18 @@ class DmsfLinksTest < RedmineDmsf::Test::UnitTest
|
||||
:project_id => @project1.id,
|
||||
:created_at => DateTime.now(),
|
||||
:updated_at => DateTime.now())
|
||||
assert file_link.save
|
||||
assert file_link.save, file_link.errors.full_messages.to_sentence
|
||||
|
||||
# External link
|
||||
external_link = DmsfLink.new(
|
||||
:target_project_id => @project1.id,
|
||||
:external_url => 'http://www.redmine.org/plugins/dmsf',
|
||||
:target_type => 'DmsfUrl',
|
||||
:name => 'DMSF plugin',
|
||||
:project_id => @project1.id,
|
||||
:created_at => DateTime.now(),
|
||||
:updated_at => DateTime.now())
|
||||
assert external_link.save, external_link.errors.full_messages.to_sentence
|
||||
end
|
||||
|
||||
def test_validate_name_length
|
||||
@ -78,11 +91,12 @@ class DmsfLinksTest < RedmineDmsf::Test::UnitTest
|
||||
assert !@folder_link.save
|
||||
assert_equal 1, @folder_link.errors.count
|
||||
end
|
||||
|
||||
def test_validate_target_id_presence
|
||||
@folder_link.target_id = nil
|
||||
assert !@folder_link.save
|
||||
assert_equal 1, @folder_link.errors.count
|
||||
|
||||
def test_validate_external_url
|
||||
@file_link.target_type = 'DmsfUrl'
|
||||
@file_link.external_url = nil
|
||||
assert !@file_link.save
|
||||
assert_equal 1, @file_link.errors.count
|
||||
end
|
||||
|
||||
def test_belongs_to_project
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user