Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
r3574@sedna: jeremy | 2005-10-13 11:16:51 -0700
More precise Logger version test to account for distributions that don't keep Ruby and its stdlib in sync. Logger#silence yields self for convenience. Logger unit tests. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2553 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
- Loading branch information
Showing
3 changed files
with
79 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
require 'test/unit' | ||
require 'stringio' | ||
require File.dirname(__FILE__) + '/../lib/active_support/clean_logger' | ||
|
||
class CleanLoggerTest < Test::Unit::TestCase | ||
def setup | ||
@out = StringIO.new | ||
@logger = Logger.new(@out) | ||
end | ||
|
||
def test_format_message | ||
@logger.error 'error' | ||
assert_equal "error\n", @out.string | ||
end | ||
|
||
def test_silence | ||
# Without yielding self. | ||
@logger.silence do | ||
@logger.debug 'debug' | ||
@logger.info 'info' | ||
@logger.warn 'warn' | ||
@logger.error 'error' | ||
@logger.fatal 'fatal' | ||
end | ||
|
||
# Yielding self. | ||
@logger.silence do |logger| | ||
logger.debug 'debug' | ||
logger.info 'info' | ||
logger.warn 'warn' | ||
logger.error 'error' | ||
logger.fatal 'fatal' | ||
end | ||
|
||
assert_equal "error\nfatal\nerror\nfatal\n", @out.string | ||
end | ||
end | ||
|
||
class CleanLogger_182_to_183_Test < Test::Unit::TestCase | ||
def setup | ||
if Logger.method_defined?(:formatter=) | ||
Logger.send(:alias_method, :hide_formatter=, :formatter=) | ||
else | ||
Logger.send(:define_method, :formatter=) { } | ||
end | ||
load File.dirname(__FILE__) + '/../lib/active_support/clean_logger.rb' | ||
|
||
@out = StringIO.new | ||
@logger = Logger.new(@out) | ||
@logger.progname = 'CLEAN LOGGER TEST' | ||
end | ||
|
||
def teardown | ||
if Logger.method_defined?(:hide_formatter=) | ||
Logger.send(:alias_method, :formatter=, :hide_formatter=) | ||
else | ||
Logger.send(:undef_method, :formatter=) | ||
end | ||
load File.dirname(__FILE__) + '/../lib/active_support/clean_logger.rb' | ||
end | ||
|
||
# Since we've fooled Logger into thinking we're on 1.8.2 if we're on 1.8.3 | ||
# and on 1.8.3 if we're on 1.8.2, it'll define format_message with the | ||
# wrong order of arguments and therefore print progname instead of msg. | ||
def test_format_message_with_faked_version | ||
@logger.error 'error' | ||
assert_equal "CLEAN LOGGER TEST\n", @out.string | ||
end | ||
end |