diff options
| -rw-r--r-- | app/models/info_request.rb | 2 | ||||
| -rw-r--r-- | app/models/public_body.rb | 1 | ||||
| -rw-r--r-- | spec/models/info_request_spec.rb | 8 | 
3 files changed, 10 insertions, 1 deletions
| diff --git a/app/models/info_request.rb b/app/models/info_request.rb index 9290ab77d..83456b54f 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -997,7 +997,7 @@ public      # Call groups of censor rules      def apply_censor_rules_to_text!(text) -        applicable_rules = [self.censor_rules, CensorRule.global.all] +        applicable_rules = [self.censor_rules, self.public_body.censor_rules, CensorRule.global.all]          if self.user && !self.user.censor_rules.empty?              applicable_rules << self.user.censor_rules          end diff --git a/app/models/public_body.rb b/app/models/public_body.rb index 97802c7e8..60ecb2781 100644 --- a/app/models/public_body.rb +++ b/app/models/public_body.rb @@ -42,6 +42,7 @@ class PublicBody < ActiveRecord::Base      has_many :info_requests, :order => 'created_at desc'      has_many :track_things, :order => 'created_at desc' +    has_many :censor_rules, :order => 'created_at desc'      has_tag_string diff --git a/spec/models/info_request_spec.rb b/spec/models/info_request_spec.rb index adc0ab676..b1d10a51d 100644 --- a/spec/models/info_request_spec.rb +++ b/spec/models/info_request_spec.rb @@ -407,12 +407,15 @@ describe InfoRequest do              @global_rule = mock_model(CensorRule, :apply_to_text! => nil)              @user_rule = mock_model(CensorRule, :apply_to_text! => nil)              @request_rule = mock_model(CensorRule, :apply_to_text! => nil) +            @body_rule = mock_model(CensorRule, :apply_to_text! => nil)              @user = mock_model(User, :censor_rules => [@user_rule]) +            @body = mock_model(PublicBody, :censor_rules => [@body_rule])              @info_request = InfoRequest.new(:prominence => 'normal',                                              :awaiting_description => true,                                              :title => 'title')              @info_request.stub!(:user).and_return(@user)              @info_request.stub!(:censor_rules).and_return([@request_rule]) +            @info_request.stub!(:public_body).and_return(@body)              @text = 'some text'              CensorRule.stub!(:global).and_return(mock('global context', :all => [@global_rule]))          end @@ -432,6 +435,11 @@ describe InfoRequest do              lambda{ @info_request.apply_censor_rules_to_text!(@text) }.should_not raise_error          end +        it 'should apply a rule from the body associated with the request' do +            @body_rule.should_receive(:apply_to_text!).with(@text) +            @info_request.apply_censor_rules_to_text!(@text) +        end +          it 'should apply a request rule' do              @request_rule.should_receive(:apply_to_text!).with(@text)              @info_request.apply_censor_rules_to_text!(@text) | 
