aboutsummaryrefslogtreecommitdiffstats
path: root/spec/controllers/api_controller_spec.rb
diff options
context:
space:
mode:
authorRobin Houston <robin.houston@gmail.com>2012-05-28 16:24:25 +0100
committerRobin Houston <robin.houston@gmail.com>2012-06-06 19:35:12 +0100
commit198083920f4cbcf50e61eab9e3d74edda1405e22 (patch)
tree0beba2f0fd1ae48f1273cc627e085608cd781068 /spec/controllers/api_controller_spec.rb
parentf5cd4f050a80a23ea0dead8bcaf9b79ce07cb18a (diff)
Test for attaching a file via the API
Not yet implemented, so the test fails.
Diffstat (limited to 'spec/controllers/api_controller_spec.rb')
-rw-r--r--spec/controllers/api_controller_spec.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/spec/controllers/api_controller_spec.rb b/spec/controllers/api_controller_spec.rb
index 5a5496556..9cd4c0820 100644
--- a/spec/controllers/api_controller_spec.rb
+++ b/spec/controllers/api_controller_spec.rb
@@ -177,7 +177,43 @@ describe ApiController, "when using the API" do
end
it "should allow files to be attached to a response" do
+ # First we need an external request
+ request_id = info_requests(:external_request).id
+
+ # Initially it has no incoming messages
+ IncomingMessage.count(:conditions => ["info_request_id = ?", request_id]).should == 0
+
+ # Now add one
+ sent_at = "2012-05-28T12:35:39+01:00"
+ response_body = "Thank you for your request for information, which we are handling in accordance with the Freedom of Information Act 2000. You will receive a response within 20 working days or before the next full moon, whichever is sooner.\n\nYours sincerely,\nJohn Gandermulch,\nExample Council FOI Officer\n"
+ post :add_correspondence,
+ :k => public_bodies(:geraldine_public_body).api_key,
+ :id => request_id,
+ :correspondence_json => {
+ "direction" => "response",
+ "sent_at" => sent_at,
+ "body" => response_body
+ }.to_json,
+ :attachments => [
+ fixture_file_upload("files/tfl.pdf")
+ ]
+
+ # And make sure it worked
+ response.should be_success
+ incoming_messages = IncomingMessage.all(:conditions => ["info_request_id = ?", request_id])
+ incoming_messages.count.should == 1
+ incoming_message = incoming_messages[0]
+
+ incoming_message.sent_at.should == Time.iso8601(sent_at)
+ incoming_message.get_main_body_text_folded.should == response_body
+
+ # Get the attachment
+ attachments = incoming_message.get_attachments_for_display
+ attachments.size.should == 1
+ attachment = attachments[0]
+ attachment.filename.should == "tfl.pdf"
+ attachment.body.should == open("files/tfl.pdf", &:read)
end
it "should show information about a request" do