fog--fog/tests/rackspace/rackspace_tests.rb

56 lines
2.1 KiB
Ruby

Shindo.tests('Fog::Rackspace', ['rackspace']) do
tests('normalize_url') do
tests('should return nil if endpoint is nil').returns(nil) do
Fog::Rackspace.normalize_url nil
end
tests('should remove trailing spaces').returns("https://dfw.blockstorage.api.rackspacecloud.com/v1") do
Fog::Rackspace.normalize_url "https://dfw.blockstorage.api.rackspacecloud.com/v1 "
end
tests('should remove trailing /').returns("https://dfw.blockstorage.api.rackspacecloud.com/v1") do
Fog::Rackspace.normalize_url "https://dfw.blockstorage.api.rackspacecloud.com/v1/"
end
tests('should downcase url').returns("https://dfw.blockstorage.api.rackspacecloud.com/v1") do
Fog::Rackspace.normalize_url "HTTPS://DFW.BLOCKSTORAGE.API.RACKSPACECLOUD.COM/V1"
end
tests('show do all three').returns("https://dfw.blockstorage.api.rackspacecloud.com/v1") do
Fog::Rackspace.normalize_url "HTTPS://DFW.BLOCKSTORAGE.API.RACKSPACECLOUD.COM/V1/ "
end
end
tests('json_response?') do
returns(false, "nil") { Fog::Rackspace.json_response?(nil) }
tests('missing header').returns(false) do
response = Excon::Response.new
response.headers = nil #maybe this is a forced case
returns(true) { response.headers.nil? }
Fog::Rackspace.json_response?(response)
end
tests('nil Content-Type header').returns(false) do
response = Excon::Response.new
response.headers['Content-Type'] = nil
Fog::Rackspace.json_response?(response)
end
tests('text/html Content-Type header').returns(false) do
response = Excon::Response.new
response.headers['Content-Type'] = 'text/html'
Fog::Rackspace.json_response?(response)
end
tests('application/json Content-Type header').returns(true) do
response = Excon::Response.new
response.headers['Content-Type'] = 'application/json'
Fog::Rackspace.json_response?(response)
end
tests('APPLICATION/JSON Content-Type header').returns(true) do
response = Excon::Response.new
response.headers['Content-Type'] = 'APPLICATION/JSON'
Fog::Rackspace.json_response?(response)
end
end
end