diff options
| -rw-r--r-- | app/models/censor_rule.rb | 7 | ||||
| -rw-r--r-- | spec/models/censor_rule_spec.rb | 24 | 
2 files changed, 20 insertions, 11 deletions
| diff --git a/app/models/censor_rule.rb b/app/models/censor_rule.rb index 4548a3a71..4e96dc55a 100644 --- a/app/models/censor_rule.rb +++ b/app/models/censor_rule.rb @@ -43,10 +43,6 @@ class CensorRule < ActiveRecord::Base          end      end -    def binary_replacement -        self.text.gsub(/./, 'x') -    end -      def apply_to_text!(text)          if text.nil?              return nil @@ -59,7 +55,8 @@ class CensorRule < ActiveRecord::Base          if binary.nil?              return nil          end -        binary.gsub!(self.text, self.binary_replacement) +        to_replace = regexp? ? Regexp.new(self.text, Regexp::MULTILINE) : self.text +        binary.gsub!(to_replace){ |match| match.gsub(/./, 'x') }      end      def for_admin_column diff --git a/spec/models/censor_rule_spec.rb b/spec/models/censor_rule_spec.rb index 6b48ac317..de9651f01 100644 --- a/spec/models/censor_rule_spec.rb +++ b/spec/models/censor_rule_spec.rb @@ -35,18 +35,18 @@ describe CensorRule, "substituting things" do              @censor_rule.text = "--PRIVATE.*--PRIVATE"              @censor_rule.replacement = "--REMOVED\nHidden private info\n--REMOVED"              @censor_rule.regexp = true -        end - -        it "replaces with the regexp" do -            body = +            @body =  <<BODY  Some public information  --PRIVATE  Some private information  --PRIVATE  BODY -            @censor_rule.apply_to_text!(body) -            body.should == +        end + +        it "replaces the regexp with the replacement text when applied to text" do +            @censor_rule.apply_to_text!(@body) +            @body.should ==  <<BODY  Some public information  --REMOVED @@ -55,6 +55,18 @@ Hidden private info  BODY          end +        it "replaces the regexp with the same number of 'x' characters as the text replaced +            when applied to binary" do +            @censor_rule.apply_to_binary!(@body) +            @body.should == +<<BODY +Some public information +xxxxxxxxx +xxxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxx +BODY +        end +      end  end | 
