Initial Redmine tooling and local plugin forks
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
# encoding: utf-8
|
||||
require File.expand_path('../../test_helper', __FILE__)
|
||||
# require 'helpdesk_controller'
|
||||
|
||||
|
||||
class HelpdeskControllerTest < ActionController::TestCase
|
||||
fixtures :projects,
|
||||
:users,
|
||||
:roles,
|
||||
:members,
|
||||
:member_roles,
|
||||
:issues,
|
||||
:issue_statuses,
|
||||
:versions,
|
||||
:trackers,
|
||||
:projects_trackers,
|
||||
:issue_categories,
|
||||
:enabled_modules,
|
||||
:enumerations,
|
||||
:attachments,
|
||||
:workflows,
|
||||
:custom_fields,
|
||||
:custom_values,
|
||||
:custom_fields_projects,
|
||||
:custom_fields_trackers,
|
||||
:time_entries,
|
||||
:journals,
|
||||
:journal_details,
|
||||
:queries
|
||||
|
||||
RedmineHelpdesk::TestCase.create_fixtures(Redmine::Plugin.find(:redmine_contacts).directory + '/test/fixtures/', [:contacts,
|
||||
:contacts_projects,
|
||||
:contacts_issues,
|
||||
:deals,
|
||||
:notes,
|
||||
:tags,
|
||||
:taggings,
|
||||
:queries])
|
||||
|
||||
RedmineHelpdesk::TestCase.create_fixtures(Redmine::Plugin.find(:redmine_contacts_helpdesk).directory + '/test/fixtures/', [:journal_messages,
|
||||
:helpdesk_tickets])
|
||||
|
||||
FIXTURES_PATH = Redmine::Plugin.find(:redmine_contacts_helpdesk).directory + '/test/fixtures/helpdesk_mailer'
|
||||
|
||||
def setup
|
||||
RedmineHelpdesk::TestCase.prepare
|
||||
|
||||
@controller = HelpdeskController.new
|
||||
@request = ActionController::TestRequest.new
|
||||
@response = ActionController::TestResponse.new
|
||||
User.current = nil
|
||||
end
|
||||
|
||||
def credentials(user, password=nil)
|
||||
ActionController::HttpAuthentication::Basic.encode_credentials(user, password || user)
|
||||
end
|
||||
|
||||
def test_show_original
|
||||
@request.session[:user_id] = 1
|
||||
Setting.default_language = 'en'
|
||||
|
||||
a = Attachment.create!(:container => HelpdeskTicket.find(1),
|
||||
:file => uploaded_file("new_issue_new_contact_ru_2.eml", "message/rfc822"),
|
||||
:author => User.find(1))
|
||||
|
||||
get :show_original, :id => a, :project_id => 1
|
||||
assert_response :success
|
||||
assert_template 'attachments/file'
|
||||
assert_not_nil assigns(:content)
|
||||
assert_match 'Программа автоматически заменила категории', @response.body
|
||||
end
|
||||
|
||||
def test_should_delete_spam
|
||||
@request.session[:user_id] = 1
|
||||
Setting.default_language = 'en'
|
||||
issue = Issue.new
|
||||
issue.copy_from(1).save
|
||||
contact = Contact.create(:first_name => "New contact", :project => Project.find('ecookbook'), :email => "mail@test.new")
|
||||
user = User.find(1)
|
||||
issue.helpdesk_ticket = HelpdeskTicket.new(:customer => contact,
|
||||
:issue => issue,
|
||||
:from_address => contact.primary_email,
|
||||
:ticket_date => Time.now)
|
||||
issue.save!
|
||||
|
||||
assert_not_nil customer = issue.customer
|
||||
|
||||
delete :delete_spam, :project_id => 1, :issue_id => issue.id
|
||||
assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook'
|
||||
assert_nil Contact.find_by_id(contact.id)
|
||||
assert_nil Issue.find_by_id(issue.id)
|
||||
assert_match customer.primary_email, HelpdeskSettings["helpdesk_blacklist", '1']
|
||||
end
|
||||
|
||||
def test_should_save_settings
|
||||
@request.session[:user_id] = 1
|
||||
Setting.default_language = 'en'
|
||||
@project = Project.find('ecookbook')
|
||||
put :save_settings , :project_id => @project.id, "helpdesk_answer_from" => 'test@test.ru', "helpdesk_lifetime" => 60, :helpdesk_protocol => 'pop3', :helpdesk_host => 'pop3.test.ru'
|
||||
assert_response :redirect
|
||||
assert_equal('test@test.ru', ContactsSetting["helpdesk_answer_from", @project.id])
|
||||
assert_equal('60', ContactsSetting["helpdesk_lifetime", @project.id])
|
||||
assert_equal('pop3', ContactsSetting[:helpdesk_protocol, @project.id])
|
||||
assert_equal('pop3.test.ru', ContactsSetting[:helpdesk_host, @project.id])
|
||||
end
|
||||
|
||||
def test_should_notify_sender_on_ticket_created_via_api
|
||||
user = User.find(1)
|
||||
user.pref[:no_self_notified] = false
|
||||
user.pref.save
|
||||
@request.session[:user_id] = 1
|
||||
@project = Project.find('ecookbook')
|
||||
Setting.default_language = 'en'
|
||||
Setting.rest_api_enabled = 1
|
||||
ContactsSetting["helpdesk_answer_from", @project.id] = 'test@email.from'
|
||||
ContactsSetting["helpdesk_send_notification", @project.id] = 1
|
||||
token = Token.create!(:user => User.find(1), :action => 'api', :value => 'topsecret')
|
||||
ActionMailer::Base.deliveries = []
|
||||
post :create_ticket,
|
||||
:format => :xml,
|
||||
:project_id => @project.id,
|
||||
:key => token.value,
|
||||
:ticket => {
|
||||
:issue => {
|
||||
:subject => 'test1',
|
||||
:tracker_id => Tracker.first.id
|
||||
},
|
||||
:contact => {
|
||||
:email => 'test@example.com',
|
||||
:first_name => 'John'
|
||||
}
|
||||
}
|
||||
assert_response 201
|
||||
assert_equal(2, ActionMailer::Base.deliveries.count)
|
||||
assert_equal(['test@example.com'], ActionMailer::Base.deliveries.last.to)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def uploaded_file(filename, mime)
|
||||
fixture_file_upload("../../plugins/redmine_contacts_helpdesk/test/fixtures/helpdesk_mailer/#{filename}", mime, true)
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user