Initial commit
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe "Assets API" do
|
||||
|
||||
before(:each) do
|
||||
@user = FactoryGirl.create(:valid_user)
|
||||
|
||||
delete_user_data @user
|
||||
host! "#{@user.username}.localhost.lan"
|
||||
end
|
||||
|
||||
after(:each) do
|
||||
@user.destroy
|
||||
end
|
||||
|
||||
let(:params) { { :api_key => @user.api_key } }
|
||||
|
||||
it 'creates a new asset' do
|
||||
Asset.any_instance.stubs('use_s3?').returns(false)
|
||||
|
||||
file_path = Rails.root.join('spec', 'support', 'data', 'cartofante_blue.png')
|
||||
if File.exist?(file_path) && File.file?(file_path)
|
||||
uploaded_file = Rack::Test::UploadedFile.new(file_path, 'image/png')
|
||||
|
||||
post_json(
|
||||
api_v1_users_assets_create_url(user_id: @user),
|
||||
params.merge(kind: 'wadus', filename: uploaded_file.path)
|
||||
) do |response|
|
||||
response.status.should be_success
|
||||
response.body[:public_url].should =~ /\/test\/#{@user.username}\/assets\/\d+cartofante_blue/
|
||||
URI(response.body[:public_url]).should be_absolute
|
||||
response.body[:kind].should == 'wadus'
|
||||
@user.reload
|
||||
@user.assets.count.should == 1
|
||||
asset = @user.assets.first
|
||||
asset.public_url.should =~ /\/test\/#{@user.username}\/assets\/\d+cartofante_blue/
|
||||
asset.kind.should == 'wadus'
|
||||
end
|
||||
else
|
||||
pending("Required spec asset '#{file_path}' not found, test can't properly execute")
|
||||
end
|
||||
end
|
||||
|
||||
it 'creates a new asset with spaces in name' do
|
||||
Asset.any_instance.stubs('use_s3?').returns(false)
|
||||
|
||||
file_path = Rails.root.join('spec', 'support', 'data', 'cartofante blue.png')
|
||||
if File.exist?(file_path) && File.file?(file_path)
|
||||
uploaded_file = Rack::Test::UploadedFile.new(file_path, 'image/png')
|
||||
|
||||
post_json(
|
||||
api_v1_users_assets_create_url(user_id: @user),
|
||||
params.merge(kind: 'wadus', filename: uploaded_file.path)
|
||||
) do |response|
|
||||
response.status.should be_success
|
||||
response.body[:public_url].should =~ /\/test\/#{@user.username}\/assets\/\d+cartofante%20blue/
|
||||
URI(response.body[:public_url]).should be_absolute
|
||||
response.body[:kind].should == 'wadus'
|
||||
@user.reload
|
||||
@user.assets.count.should == 1
|
||||
asset = @user.assets.first
|
||||
asset.public_url.should =~ /\/test\/#{@user.username}\/assets\/\d+cartofante%20blue/
|
||||
asset.kind.should == 'wadus'
|
||||
end
|
||||
else
|
||||
pending("Required spec asset '#{file_path}' not found, test can't properly execute")
|
||||
end
|
||||
end
|
||||
|
||||
it "returns some error message when the asset creation fails" do
|
||||
pending "Fix this test, sometimes fails"
|
||||
Asset.any_instance.stubs(:s3_bucket).raises("AWS exception")
|
||||
post_json(api_v1_users_assets_create_url(user_id: @user), params.merge(
|
||||
:filename => Rack::Test::UploadedFile.new(Rails.root.join('spec/support/data/cartofante_blue.png'), 'image/png').path)
|
||||
) do |response|
|
||||
response.status.should == 400
|
||||
response.body[:error].should == ["AWS exception"]
|
||||
end
|
||||
end
|
||||
|
||||
it "finds image file extension" do
|
||||
asset = FactoryGirl.create(:asset, user_id: @user.id)
|
||||
|
||||
Asset::VALID_EXTENSIONS.each do |extension|
|
||||
asset_name = "cartofante" + extension
|
||||
asset.stubs(:asset_file).returns(asset_name)
|
||||
asset.asset_file_extension.should == extension
|
||||
end
|
||||
end
|
||||
|
||||
it "detects incorrect image file extension" do
|
||||
asset = FactoryGirl.create(:asset, user_id: @user.id)
|
||||
asset.stubs(:asset_file).returns("cartofante.gifv")
|
||||
asset.asset_file_extension.should == nil
|
||||
end
|
||||
|
||||
it "deletes an asset" do
|
||||
Asset.any_instance.stubs('use_s3?').returns(false)
|
||||
|
||||
FactoryGirl.create(:asset, user_id: @user.id)
|
||||
@user.reload
|
||||
delete_json(api_v1_users_assets_destroy_url(user_id: @user.id, id: @user.assets.first.id), params) do |response|
|
||||
response.body.should == {}
|
||||
response.status.should be_success
|
||||
@user.reload
|
||||
@user.assets.count.should == 0
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user