blob: feb183572199c729e3df3012d181e700e066e548 [file]
require 'rubygems'
require 'require_relative' if RUBY_VERSION < '1.9'
require_relative './common.rb'
describe Deltacloud::EC2::API do
before do
def app; Deltacloud::EC2::API; end
end
it 'has the config set property' do
Deltacloud::config[:ec2].must_be_kind_of Deltacloud::Server
Deltacloud[:ec2].root_url.must_equal '/ec2'
end
it 'must do a redirection when no Action parameter' do
get root_url
status.must_equal 301
headers['Location'].wont_be_empty
headers['Location'].must_equal 'http://example.org/ec2'
end
it 'must set the Connection header to close' do
get root_url
headers['Connection'].must_equal 'close'
end
it 'must advertise current API version in response headers' do
get root_url
headers['Server'].must_equal 'Apache-Deltacloud-EC2/2012-04-01'
end
it 'must return EC2 exception when unknown action' do
get root_url + '?Action=UnknownActionTest'
xml.root.name.must_equal 'Response'
(xml/'Response/Errors/Code').first.text.strip.must_equal 'InvalidAction'
end
it 'must return EC2 exception when authentication failed' do
authorize 'unknownuser', 'password'
get root_url + '?Action=DescribeAvailabilityZones'
status.must_equal 401
end
end