spec/integration/echo_spec.rb in goliath-0.9.0 vs spec/integration/echo_spec.rb in goliath-0.9.1
- old
+ new
@@ -1,11 +1,11 @@
require 'spec_helper'
require File.join(File.dirname(__FILE__), '../../', 'examples/echo')
+require 'multipart_body'
+require 'yajl'
describe Echo do
- include Goliath::TestHelper
-
let(:err) { Proc.new { fail "API request failed" } }
it 'returns the echo param' do
with_api(Echo) do
get_request({:query => {:echo => 'test'}}, err) do |c|
@@ -19,9 +19,44 @@
with_api(Echo) do
get_request({}, err) do |c|
b = Yajl::Parser.parse(c.response)
b['error'].should_not be_nil
b['error'].should == 'Echo identifier missing'
+ end
+ end
+ end
+
+ it 'echos POST data' do
+ with_api(Echo) do
+ post_request({:body => {'echo' => 'test'}}, err) do |c|
+ b = Yajl::Parser.parse(c.response)
+ b['response'].should == 'test'
+ end
+ end
+ end
+
+ it 'echos POST data that is multipart encoded' do
+ with_api(Echo) do
+ body = MultipartBody.new(:echo => 'test')
+ head = {'content-type' => "multipart/form-data; boundary=#{body.boundary}"}
+
+ post_request({:body => body.to_s,
+ :head => head}, err) do |c|
+ b = Yajl::Parser.parse(c.response)
+ b['response'].should == 'test'
+ end
+ end
+ end
+
+ it 'echos application/json POST body data' do
+ with_api(Echo) do
+ body = Yajl::Encoder.encode({'echo' => 'My Echo'})
+ head = {'content-type' => 'application/json'}
+
+ post_request({:body => body.to_s,
+ :head => head}, err) do |c|
+ b = Yajl::Parser.parse(c.response)
+ b['response'].should == 'My Echo'
end
end
end
end