aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/integration/alaveteli_dsl.rb9
-rw-r--r--spec/integration/view_request_spec.rb22
-rw-r--r--spec/models/info_request_spec.rb17
-rw-r--r--spec/models/public_body_spec.rb52
4 files changed, 100 insertions, 0 deletions
diff --git a/spec/integration/alaveteli_dsl.rb b/spec/integration/alaveteli_dsl.rb
index 119bb05a0..1d56abbdf 100644
--- a/spec/integration/alaveteli_dsl.rb
+++ b/spec/integration/alaveteli_dsl.rb
@@ -64,5 +64,14 @@ def close_request(request)
request.save!
end
+def cache_directories_exist?(request)
+ cache_path = File.join(Rails.root, 'cache', 'views')
+ paths = [File.join(cache_path, 'request', request.request_dirs)]
+ I18n.available_locales.each do |locale|
+ paths << File.join(cache_path, locale.to_s, 'request', request.request_dirs)
+ end
+ paths.any?{ |path| File.exist?(path) }
+end
+
diff --git a/spec/integration/view_request_spec.rb b/spec/integration/view_request_spec.rb
index 814e20fb3..eecb984f5 100644
--- a/spec/integration/view_request_spec.rb
+++ b/spec/integration/view_request_spec.rb
@@ -19,6 +19,28 @@ describe "When viewing requests" do
@unregistered.browses_request("#{@info_request.url_title}?action=add")
end
+ context "when a request is hidden by an admin" do
+
+ it 'should not retain any cached attachments to be served up by the webserver' do
+ admin = login(FactoryGirl.create(:admin_user))
+ non_owner = login(FactoryGirl.create(:user))
+ info_request = FactoryGirl.create(:info_request_with_incoming_attachments)
+ incoming_message = info_request.incoming_messages.first
+ attachment_url = "/es/request/#{info_request.id}/response/#{incoming_message.id}/attach/2/interesting.pdf"
+ non_owner.get(attachment_url)
+ cache_directories_exist?(info_request).should be_true
+
+ # Admin makes the incoming message requester only
+ post_data = {:incoming_message => {:prominence => 'hidden',
+ :prominence_reason => 'boring'}}
+ admin.post_via_redirect "/admin/incoming/update/#{info_request.incoming_messages.first.id}", post_data
+ admin.response.should be_success
+
+ cache_directories_exist?(info_request).should be_false
+ end
+
+ end
+
context 'when a response has prominence "normal"' do
before do
diff --git a/spec/models/info_request_spec.rb b/spec/models/info_request_spec.rb
index 12499f50a..afb8e0949 100644
--- a/spec/models/info_request_spec.rb
+++ b/spec/models/info_request_spec.rb
@@ -147,6 +147,23 @@ describe InfoRequest do
end
+ describe 'when managing the cache directories' do
+ before do
+ @info_request = info_requests(:fancy_dog_request)
+ end
+
+ it 'should return the default locale cache path without locale parts' do
+ default_locale_path = File.join(Rails.root, 'cache', 'views', 'request', '101', '101')
+ @info_request.foi_fragment_cache_directories.include?(default_locale_path).should == true
+ end
+
+ it 'should return the cache path for any other locales' do
+ other_locale_path = File.join(Rails.root, 'cache', 'views', 'es', 'request', '101', '101')
+ @info_request.foi_fragment_cache_directories.include?(other_locale_path).should == true
+ end
+
+ end
+
describe " when emailing" do
before do
diff --git a/spec/models/public_body_spec.rb b/spec/models/public_body_spec.rb
index a7544c218..225958cac 100644
--- a/spec/models/public_body_spec.rb
+++ b/spec/models/public_body_spec.rb
@@ -546,6 +546,58 @@ CSV
errors.should include("error: line 3: Url name URL name is already taken for authority 'Foobar Test'")
end
+ it 'has a default list of fields to import' do
+ expected_fields = [
+ ['name', '(i18n)<strong>Existing records cannot be renamed</strong>'],
+ ['short_name', '(i18n)'],
+ ['request_email', '(i18n)'],
+ ['notes', '(i18n)'],
+ ['publication_scheme', '(i18n)'],
+ ['disclosure_log', '(i18n)'],
+ ['home_page', ''],
+ ['tag_string', '(tags separated by spaces)'],
+ ]
+
+ expect(PublicBody.csv_import_fields).to eq(expected_fields)
+ end
+
+ it 'allows you to override the default list of fields to import' do
+ old_csv_import_fields = PublicBody.csv_import_fields.clone
+ expected_fields = [
+ ['name', '(i18n)<strong>Existing records cannot be renamed</strong>'],
+ ['short_name', '(i18n)'],
+ ]
+
+ PublicBody.csv_import_fields = expected_fields
+
+ expect(PublicBody.csv_import_fields).to eq(expected_fields)
+
+ # Reset our change so that we don't affect other specs
+ PublicBody.csv_import_fields = old_csv_import_fields
+ end
+
+ it 'allows you to append to the default list of fields to import' do
+ old_csv_import_fields = PublicBody.csv_import_fields.clone
+ expected_fields = [
+ ['name', '(i18n)<strong>Existing records cannot be renamed</strong>'],
+ ['short_name', '(i18n)'],
+ ['request_email', '(i18n)'],
+ ['notes', '(i18n)'],
+ ['publication_scheme', '(i18n)'],
+ ['disclosure_log', '(i18n)'],
+ ['home_page', ''],
+ ['tag_string', '(tags separated by spaces)'],
+ ['a_new_field', ''],
+ ]
+
+ PublicBody.csv_import_fields << ['a_new_field', '']
+
+ expect(PublicBody.csv_import_fields).to eq(expected_fields)
+
+ # Reset our change so that we don't affect other specs
+ PublicBody.csv_import_fields = old_csv_import_fields
+ end
+
end
describe PublicBody do