aboutsummaryrefslogtreecommitdiffstats
path: root/spec/controllers/api_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/api_controller_spec.rb')
-rw-r--r--spec/controllers/api_controller_spec.rb47
1 files changed, 25 insertions, 22 deletions
diff --git a/spec/controllers/api_controller_spec.rb b/spec/controllers/api_controller_spec.rb
index 1c320f85c..6b02bd5b4 100644
--- a/spec/controllers/api_controller_spec.rb
+++ b/spec/controllers/api_controller_spec.rb
@@ -1,18 +1,6 @@
# coding: utf-8
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
-def normalise_whitespace(s)
- s = s.gsub(/\A\s+|\s+\Z/, "")
- s = s.gsub(/\s+/, " ")
- return s
-end
-
-Spec::Matchers.define :be_equal_modulo_whitespace_to do |expected|
- match do |actual|
- normalise_whitespace(actual) == normalise_whitespace(expected)
- end
-end
-
describe ApiController, "when using the API" do
describe 'checking API keys' do
@@ -83,6 +71,9 @@ describe ApiController, "when using the API" do
new_request.last_event_forming_initial_request.outgoing_message.body.should == request_data["body"].strip
new_request.public_body_id.should == public_bodies(:geraldine_public_body).id
+ new_request.info_request_events.size.should == 1
+ new_request.info_request_events[0].event_type.should == 'sent'
+ new_request.info_request_events[0].calculated_state.should == 'waiting_response'
end
def _create_request
@@ -173,7 +164,7 @@ describe ApiController, "when using the API" do
"body" => "xxx"
}.to_json
- response.status.should == "500 Internal Server Error"
+ response.status.should == 500
ActiveSupport::JSON.decode(response.body)["errors"].should == [
"Request #{request_id} cannot be updated using the API"]
@@ -195,7 +186,7 @@ describe ApiController, "when using the API" do
"body" => "xxx"
}.to_json
- response.status.should == "500 Internal Server Error"
+ response.status.should == 500
ActiveSupport::JSON.decode(response.body)["errors"].should == [
"You do not own request #{request_id}"]
@@ -213,12 +204,12 @@ describe ApiController, "when using the API" do
"body" => "Are you joking, or are you serious?"
}.to_json,
:attachments => [
- fixture_file_upload("files/tfl.pdf")
+ fixture_file_upload("/files/tfl.pdf")
]
# Make sure it worked
- response.status.to_i.should == 500
+ response.status.should == 500
errors = ActiveSupport::JSON.decode(response.body)["errors"]
errors.should == ["You cannot attach files to messages in the 'request' direction"]
end
@@ -242,7 +233,7 @@ describe ApiController, "when using the API" do
"body" => response_body
}.to_json,
:attachments => [
- fixture_file_upload("files/tfl.pdf")
+ fixture_file_upload("/files/tfl.pdf")
]
# And make sure it worked
@@ -259,7 +250,7 @@ describe ApiController, "when using the API" do
attachments.size.should == 1
attachment = attachments[0]
attachment.filename.should == "tfl.pdf"
- attachment.body.should == load_file_fixture("tfl.pdf", as_binary=true)
+ attachment.body.should == load_file_fixture("tfl.pdf")
end
it "should show information about a request" do
@@ -279,6 +270,18 @@ describe ApiController, "when using the API" do
# check, which does not really test anything at all.
end
+ it 'should show information about an external request' do
+ info_request = info_requests(:external_request)
+ get :show_request,
+ :k => public_bodies(:geraldine_public_body).api_key,
+ :id => info_request.id
+
+ response.should be_success
+ assigns[:request].id.should == info_request.id
+ r = ActiveSupport::JSON.decode(response.body)
+ r["title"].should == info_request.title
+ end
+
it "should show an Atom feed of new request events" do
get :body_request_events,
:id => public_bodies(:geraldine_public_body).id,
@@ -286,7 +289,7 @@ describe ApiController, "when using the API" do
:feed_type => "atom"
response.should be_success
- response.should render_template("api/request_events.atom")
+ response.should render_template("api/request_events")
assigns[:events].size.should > 0
assigns[:events].each do |event|
event.info_request.public_body.should == public_bodies(:geraldine_public_body)
@@ -341,7 +344,7 @@ describe ApiController, "when using the API" do
:feed_type => "atom"
response.should be_success
- response.should render_template("api/request_events.atom")
+ response.should render_template("api/request_events")
assigns[:events].size.should > 0
assigns[:events].each do |event|
event.created_at.should >= Date.new(2010, 1, 1)
@@ -360,7 +363,7 @@ describe ApiController, "when using the API" do
"sent_at" => sent_at,
"body" => response_body
}.to_json
- response.status.should == "404 Not Found"
+ response.status.should == 404
ActiveSupport::JSON.decode(response.body)["errors"].should == ["Could not find request 123459876"]
end
@@ -376,7 +379,7 @@ describe ApiController, "when using the API" do
"sent_at" => sent_at,
"body" => response_body
}.to_json
- response.status.should == "500 Internal Server Error"
+ response.status.should == 500
ActiveSupport::JSON.decode(response.body)["errors"].should == ["Request #{request_id} cannot be updated using the API"]
end
end