From 0da8e45baf592bf715023c0553b9aefd15b86579 Mon Sep 17 00:00:00 2001 From: Matt Jones Date: Thu, 5 Mar 2009 15:48:56 -0500 Subject: Correctly clean backtraces from vendor/gems and gems in alternate install locations Signed-off-by: David Heinemeier Hansson --- railties/test/backtrace_cleaner_test.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'railties/test/backtrace_cleaner_test.rb') diff --git a/railties/test/backtrace_cleaner_test.rb b/railties/test/backtrace_cleaner_test.rb index bfb9cb7639..7a1b361440 100644 --- a/railties/test/backtrace_cleaner_test.rb +++ b/railties/test/backtrace_cleaner_test.rb @@ -30,3 +30,32 @@ if defined? Test::Unit::Util::BacktraceFilter else $stderr.puts 'No BacktraceFilter for minitest' end + +class BacktraceCleanerVendorGemTest < ActiveSupport::TestCase + def setup + @cleaner = Rails::BacktraceCleaner.new + end + + test "should format installed gems correctly" do + @backtrace = [ "#{Gem.default_dir}/gems/nosuchgem-1.2.3/lib/foo.rb" ] + @result = @cleaner.clean(@backtrace) + assert_equal "nosuchgem (1.2.3) lib/foo.rb", @result[0] + end + + test "should format installed gems not in Gem.default_dir correctly" do + @target_dir = Gem.path.detect { |p| p != Gem.default_dir } + # skip this test if default_dir is the only directory on Gem.path + if @target_dir + @backtrace = [ "#{@target_dir}/gems/nosuchgem-1.2.3/lib/foo.rb" ] + @result = @cleaner.clean(@backtrace) + assert_equal "nosuchgem (1.2.3) lib/foo.rb", @result[0] + end + end + + test "should format vendor gems correctly" do + @backtrace = [ "#{Rails::GemDependency.unpacked_path}/nosuchgem-1.2.3/lib/foo.rb" ] + @result = @cleaner.clean(@backtrace) + assert_equal "nosuchgem (1.2.3) [v] lib/foo.rb", @result[0] + end + +end -- cgit v1.2.3