From 024f7fe29023c07482e245a0c355f092abb51a5a Mon Sep 17 00:00:00 2001 From: Glen Daniels Date: Mon, 21 Jan 2013 16:40:37 -0500 Subject: [PATCH] Protect against nil methods in BacktraceLineNormalizer, and test same. --- app/models/backtrace_line_normalizer.rb | 2 +- spec/models/backtrace_line_normalizer_spec.rb | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/models/backtrace_line_normalizer.rb b/app/models/backtrace_line_normalizer.rb index b8560a5..e1c5f53 100644 --- a/app/models/backtrace_line_normalizer.rb +++ b/app/models/backtrace_line_normalizer.rb @@ -13,7 +13,7 @@ class BacktraceLineNormalizer end def normalized_method - @raw_line['method'].gsub(/[0-9_]{10,}+/, "__FRAGMENT__") + @raw_line['method'].blank? ? "[unknown method]" : @raw_line['method'].gsub(/[0-9_]{10,}+/, "__FRAGMENT__") end end diff --git a/spec/models/backtrace_line_normalizer_spec.rb b/spec/models/backtrace_line_normalizer_spec.rb index bc2b77d..1a81f4c 100644 --- a/spec/models/backtrace_line_normalizer_spec.rb +++ b/spec/models/backtrace_line_normalizer_spec.rb @@ -3,12 +3,16 @@ require 'spec_helper' describe BacktraceLineNormalizer do subject { described_class.new(raw_line).call } - describe "sanitize file" do - let(:raw_line) { { 'number' => rand(999), 'file' => nil, 'method' => ActiveSupport.methods.shuffle.first.to_s } } + describe "sanitize file and method" do + let(:raw_line) { { 'number' => rand(999), 'file' => nil, 'method' => nil } } it "should replace nil file with [unknown source]" do subject['file'].should == "[unknown source]" end + it "should replace nil method with [unknown method]" do + subject['method'].should == "[unknown method]" + end + end end -- libgit2 0.21.2