55 lines
2.1 KiB
Ruby
55 lines
2.1 KiB
Ruby
|
require 'helper'
|
||
|
|
||
|
describe Twitter::REST::Media do
|
||
|
before do
|
||
|
@client = Twitter::REST::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :access_token => 'AT', :access_token_secret => 'AS')
|
||
|
end
|
||
|
|
||
|
describe '#upload' do
|
||
|
before do
|
||
|
stub_request(:post, 'https://upload.twitter.com/1.1/media/upload.json').to_return(:body => fixture('upload.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
end
|
||
|
context 'a gif image' do
|
||
|
it 'requests the correct resource' do
|
||
|
@client.upload(fixture('pbjt.gif'))
|
||
|
expect(a_request(:post, 'https://upload.twitter.com/1.1/media/upload.json')).to have_been_made
|
||
|
end
|
||
|
it 'returns an Integer' do
|
||
|
media_id = @client.upload(fixture('pbjt.gif'))
|
||
|
expect(a_request(:post, 'https://upload.twitter.com/1.1/media/upload.json')).to have_been_made
|
||
|
expect(media_id).to be_an Integer
|
||
|
expect(media_id).to eq(470_030_289_822_314_497)
|
||
|
end
|
||
|
end
|
||
|
context 'a jpe image' do
|
||
|
it 'requests the correct resource' do
|
||
|
@client.upload(fixture('wildcomet2.jpe'))
|
||
|
expect(a_request(:post, 'https://upload.twitter.com/1.1/media/upload.json')).to have_been_made
|
||
|
end
|
||
|
end
|
||
|
context 'a jpeg image' do
|
||
|
it 'requests the correct resource' do
|
||
|
@client.upload(fixture('me.jpeg'))
|
||
|
expect(a_request(:post, 'https://upload.twitter.com/1.1/media/upload.json')).to have_been_made
|
||
|
end
|
||
|
end
|
||
|
context 'a png image' do
|
||
|
it 'requests the correct resource' do
|
||
|
@client.upload(fixture('we_concept_bg2.png'))
|
||
|
expect(a_request(:post, 'https://upload.twitter.com/1.1/media/upload.json')).to have_been_made
|
||
|
end
|
||
|
end
|
||
|
context 'a Tempfile' do
|
||
|
it 'requests the correct resource' do
|
||
|
@client.upload(Tempfile.new('tmp'))
|
||
|
expect(a_request(:post, 'https://upload.twitter.com/1.1/media/upload.json')).to have_been_made
|
||
|
end
|
||
|
end
|
||
|
context 'A non IO object' do
|
||
|
it 'raises an error' do
|
||
|
expect { @client.upload('Unacceptable IO') }.to raise_error(Twitter::Error::UnacceptableIO)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|