Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

root/trunk/activesupport/test/clean_logger_test.rb

Revision 8563, 1.3 kB (checked in by bitsweat, 8 months ago)

require abstract_unit directly since test is in load path

Line 
1 require 'abstract_unit'
2 require 'stringio'
3
4 class CleanLoggerTest < Test::Unit::TestCase
5   def setup
6     @out = StringIO.new
7     @logger = Logger.new(@out)
8   end
9
10   def test_format_message
11     @logger.error 'error'
12     assert_equal "error\n", @out.string
13   end
14
15   def test_silence
16     # Without yielding self.
17     @logger.silence do
18       @logger.debug  'debug'
19       @logger.info   'info'
20       @logger.warn   'warn'
21       @logger.error  'error'
22       @logger.fatal  'fatal'
23     end
24
25     # Yielding self.
26     @logger.silence do |logger|
27       logger.debug  'debug'
28       logger.info   'info'
29       logger.warn   'warn'
30       logger.error  'error'
31       logger.fatal  'fatal'
32     end
33
34     # Silencer off.
35     Logger.silencer = false
36     @logger.silence do |logger|
37       logger.warn   'unsilenced'
38     end
39     Logger.silencer = true
40
41     assert_equal "error\nfatal\nerror\nfatal\nunsilenced\n", @out.string
42   end
43  
44   def test_datetime_format
45     @logger.formatter = Logger::Formatter.new
46     @logger.datetime_format = "%Y-%m-%d"
47     @logger.debug 'debug'
48     assert_equal "%Y-%m-%d", @logger.datetime_format
49     assert_match(/D, \[\d\d\d\d-\d\d-\d\d#\d+\] DEBUG -- : debug/, @out.string)
50   end
51  
52   def test_nonstring_formatting
53     an_object = [1, 2, 3, 4, 5]
54     @logger.debug an_object
55     assert_equal("#{an_object.inspect}\n", @out.string)
56   end
57 end
Note: See TracBrowser for help on using the browser.