76 lines
2.3 KiB
Ruby
76 lines
2.3 KiB
Ruby
require File.expand_path(File.dirname(__FILE__) + '/../../../test/test_helper')
|
|
|
|
# Engines::Testing.set_fixture_path
|
|
|
|
module RedmineHelpdesk
|
|
|
|
module TestHelper
|
|
HELPDESK_FIXTURES_PATH = File.dirname(__FILE__) + '/fixtures/helpdesk_mailer'
|
|
|
|
def submit_email(filename, options={})
|
|
raw = IO.read(File.join(HELPDESK_FIXTURES_PATH, filename))
|
|
MailHandler.receive(raw, options)
|
|
end
|
|
|
|
def submit_helpdesk_email(filename, options={})
|
|
raw = IO.read(File.join(HELPDESK_FIXTURES_PATH, filename))
|
|
HelpdeskMailer.receive(raw, options)
|
|
end
|
|
|
|
def helpdesk_uploaded_file(filename, mime)
|
|
fixture_file_upload("../../plugins/redmine_contacts_helpdesk/test/fixtures/helpdesk_mailer/#{filename}", mime, true)
|
|
end
|
|
|
|
def last_email
|
|
mail = ActionMailer::Base.deliveries.last
|
|
assert_not_nil mail
|
|
mail
|
|
end
|
|
|
|
def with_helpdesk_settings(options, &block)
|
|
Setting.plugin_redmine_contacts_helpdesk.stubs(:[]).returns(nil)
|
|
options.each { |k, v| Setting.plugin_redmine_contacts_helpdesk.stubs(:[]).with(k).returns(v) }
|
|
yield
|
|
ensure
|
|
options.each { |k, v| Setting.plugin_redmine_contacts_helpdesk.unstub(:[]) }
|
|
end
|
|
end
|
|
|
|
class TestCase
|
|
|
|
def self.create_fixtures(fixtures_directory, table_names, class_names = {})
|
|
if ActiveRecord::VERSION::MAJOR >= 4
|
|
ActiveRecord::FixtureSet.create_fixtures(fixtures_directory, table_names, class_names = {})
|
|
else
|
|
ActiveRecord::Fixtures.create_fixtures(fixtures_directory, table_names, class_names = {})
|
|
end
|
|
end
|
|
|
|
def self.prepare
|
|
Role.where(:id => [1, 2, 3, 4]).each do |r|
|
|
r.permissions << :view_contacts
|
|
r.save
|
|
end
|
|
Role.where(:id => [1, 2]).each do |r|
|
|
r.permissions << :edit_contacts
|
|
r.save
|
|
end
|
|
|
|
Role.where(:id => [1, 2, 3]).each do |r|
|
|
r.permissions << :view_deals
|
|
r.save
|
|
end
|
|
Project.where(:id => [1, 2, 3, 4]).each do |project|
|
|
EnabledModule.create(:project => project, :name => 'contacts')
|
|
EnabledModule.create(:project => project, :name => 'deals')
|
|
EnabledModule.create(:project => project, :name => 'contacts_helpdesk')
|
|
end
|
|
end
|
|
|
|
def assert_error_tag(options={})
|
|
assert_tag({:attributes => { :id => 'errorExplanation' }}.merge(options))
|
|
end
|
|
|
|
end
|
|
end
|