Skip to content

Commit

Permalink
Removed the AS core_ext/kernel/debugger breakpoint method as this met…
Browse files Browse the repository at this point in the history
…hod is added by ruby-debug and should be left as is. Missing tests added.
  • Loading branch information
joshk committed May 23, 2011
1 parent eff5d9a commit 2514d65
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 10 deletions.
8 changes: 1 addition & 7 deletions activesupport/lib/active_support/core_ext/kernel/debugger.rb
Expand Up @@ -5,12 +5,6 @@ def debugger
message = "\n***** Debugger requested, but was not available (ensure ruby-debug is listed in Gemfile/installed as gem): Start server with --debugger to enable *****\n"
defined?(Rails) ? Rails.logger.info(message) : $stderr.puts(message)
end
end

undef :breakpoint if respond_to?(:breakpoint)
def breakpoint
message = "\n***** The 'breakpoint' command has been renamed 'debugger' -- please change *****\n"
defined?(Rails) ? Rails.logger.info(message) : $stderr.puts(message)
debugger
alias breakpoint debugger unless respond_to?(:breakpoint)
end
end
46 changes: 43 additions & 3 deletions activesupport/test/core_ext/kernel_test.rb
Expand Up @@ -52,10 +52,10 @@ def test_class_eval
class << o; @x = 1; end
assert_equal 1, o.class_eval { @x }
end

def test_capture
assert_equal 'STDERR', capture(:stderr) {$stderr.print 'STDERR'}
assert_equal 'STDOUT', capture(:stdout) {print 'STDOUT'}
assert_equal 'STDERR', capture(:stderr) { $stderr.print 'STDERR' }
assert_equal 'STDOUT', capture(:stdout) { print 'STDOUT' }
end
end

Expand All @@ -73,3 +73,43 @@ def test_suppression
suppress(LoadError, ArgumentError) { raise ArgumentError }
end
end

class MockStdErr
attr_reader :output
def puts(message)
@output ||= []
@output << message
end

def info(message)
puts(message)
end

def write(message)
puts(message)
end
end

class KernelDebuggerTest < Test::Unit::TestCase
def test_debugger_not_available_message_to_stderr
old_stderr = $stderr
$stderr = MockStdErr.new
debugger
assert_match(/Debugger requested/, $stderr.output.first)
ensure
$stderr = old_stderr
end

def test_debugger_not_available_message_to_rails_logger
rails = Class.new do
def self.logger
@logger ||= MockStdErr.new
end
end
Object.const_set("Rails", rails)
debugger
assert_match(/Debugger requested/, rails.logger.output.first)
ensure
Object.send(:remove_const, "Rails")
end
end

0 comments on commit 2514d65

Please sign in to comment.