Froze rails gems
[depot.git] / vendor / rails / actionmailer / test / abstract_unit.rb
1 require 'test/unit'
2
3 $:.unshift "#{File.dirname(__FILE__)}/../lib"
4 $:.unshift "#{File.dirname(__FILE__)}/../../activesupport/lib"
5 $:.unshift "#{File.dirname(__FILE__)}/../../actionpack/lib"
6 require 'action_mailer'
7 require 'action_mailer/test_case'
8
9 # Show backtraces for deprecated behavior for quicker cleanup.
10 ActiveSupport::Deprecation.debug = true
11
12 $:.unshift "#{File.dirname(__FILE__)}/fixtures/helpers"
13 ActionMailer::Base.template_root = "#{File.dirname(__FILE__)}/fixtures"
14
15 class MockSMTP
16 def self.deliveries
17 @@deliveries
18 end
19
20 def initialize
21 @@deliveries = []
22 end
23
24 def sendmail(mail, from, to)
25 @@deliveries << [mail, from, to]
26 end
27
28 def start(*args)
29 yield self
30 end
31 end
32
33 class Net::SMTP
34 def self.new(*args)
35 MockSMTP.new
36 end
37 end
38
39 def uses_gem(gem_name, test_name, version = '> 0')
40 require 'rubygems'
41 gem gem_name.to_s, version
42 require gem_name.to_s
43 yield
44 rescue LoadError
45 $stderr.puts "Skipping #{test_name} tests. `gem install #{gem_name}` and try again."
46 end
47
48 # Wrap tests that use Mocha and skip if unavailable.
49 unless defined? uses_mocha
50 def uses_mocha(test_name, &block)
51 uses_gem('mocha', test_name, '>= 0.5.5', &block)
52 end
53 end
54
55 def set_delivery_method(delivery_method)
56 @old_delivery_method = ActionMailer::Base.delivery_method
57 ActionMailer::Base.delivery_method = delivery_method
58 end
59
60 def restore_delivery_method
61 ActionMailer::Base.delivery_method = @old_delivery_method
62 end