139 lines
7.4 KiB
Ruby
139 lines
7.4 KiB
Ruby
|
require 'helper'
|
||
|
|
||
|
describe Twitter::REST::Timelines do
|
||
|
|
||
|
before do
|
||
|
@client = Twitter::REST::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :access_token => 'AT', :access_token_secret => 'AS')
|
||
|
end
|
||
|
|
||
|
describe '#mentions_timeline' do
|
||
|
before do
|
||
|
stub_get('/1.1/statuses/mentions_timeline.json').to_return(:body => fixture('statuses.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
end
|
||
|
it 'requests the correct resource' do
|
||
|
@client.mentions_timeline
|
||
|
expect(a_get('/1.1/statuses/mentions_timeline.json')).to have_been_made
|
||
|
end
|
||
|
it 'returns the 20 most recent mentions (status containing @username) for the authenticating user' do
|
||
|
tweets = @client.mentions_timeline
|
||
|
expect(tweets).to be_an Array
|
||
|
expect(tweets.first).to be_a Twitter::Tweet
|
||
|
expect(tweets.first.text).to eq('Happy Birthday @imdane. Watch out for those @rally pranksters!')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '#user_timeline' do
|
||
|
context 'with a screen name passed' do
|
||
|
before do
|
||
|
stub_get('/1.1/statuses/user_timeline.json').with(:query => {:screen_name => 'sferik'}).to_return(:body => fixture('statuses.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
end
|
||
|
it 'requests the correct resource' do
|
||
|
@client.user_timeline('sferik')
|
||
|
expect(a_get('/1.1/statuses/user_timeline.json').with(:query => {:screen_name => 'sferik'})).to have_been_made
|
||
|
end
|
||
|
it 'returns the 20 most recent Tweets posted by the user specified by screen name or user id' do
|
||
|
tweets = @client.user_timeline('sferik')
|
||
|
expect(tweets).to be_an Array
|
||
|
expect(tweets.first).to be_a Twitter::Tweet
|
||
|
expect(tweets.first.text).to eq('Happy Birthday @imdane. Watch out for those @rally pranksters!')
|
||
|
end
|
||
|
end
|
||
|
context 'without a screen name passed' do
|
||
|
before do
|
||
|
stub_get('/1.1/statuses/user_timeline.json').to_return(:body => fixture('statuses.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
end
|
||
|
it 'requests the correct resource' do
|
||
|
@client.user_timeline
|
||
|
expect(a_get('/1.1/statuses/user_timeline.json')).to have_been_made
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '#retweeted_by_user' do
|
||
|
before do
|
||
|
stub_get('/1.1/statuses/user_timeline.json').with(:query => {:include_rts => 'true', :screen_name => 'sferik', :count => '200'}).to_return(:body => fixture('statuses.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
stub_get('/1.1/statuses/user_timeline.json').with(:query => {:include_rts => 'true', :screen_name => 'sferik', :count => '200', :max_id => '244102729860009983'}).to_return(:body => fixture('statuses.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
end
|
||
|
it 'requests the correct resource' do
|
||
|
@client.retweeted_by_user('sferik')
|
||
|
expect(a_get('/1.1/statuses/user_timeline.json').with(:query => {:include_rts => 'true', :screen_name => 'sferik', :count => '200'})).to have_been_made
|
||
|
expect(a_get('/1.1/statuses/user_timeline.json').with(:query => {:include_rts => 'true', :screen_name => 'sferik', :count => '200', :max_id => '244102729860009983'})).to have_been_made.times(3)
|
||
|
end
|
||
|
it 'returns the 20 most recent retweets posted by the authenticating user' do
|
||
|
tweets = @client.retweeted_by_user('sferik')
|
||
|
expect(tweets).to be_an Array
|
||
|
expect(tweets.first).to be_a Twitter::Tweet
|
||
|
expect(tweets.first.text).to eq('RT @olivercameron: Mosaic looks cool: http://t.co/A8013C9k')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '#retweeted_by_me' do
|
||
|
before do
|
||
|
stub_get('/1.1/statuses/user_timeline.json').with(:query => {:include_rts => 'true', :count => '200'}).to_return(:body => fixture('statuses.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
stub_get('/1.1/statuses/user_timeline.json').with(:query => {:include_rts => 'true', :count => '200', :max_id => '244102729860009983'}).to_return(:body => fixture('statuses.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
end
|
||
|
it 'requests the correct resource' do
|
||
|
@client.retweeted_by_me
|
||
|
expect(a_get('/1.1/statuses/user_timeline.json').with(:query => {:include_rts => 'true', :count => '200'})).to have_been_made
|
||
|
expect(a_get('/1.1/statuses/user_timeline.json').with(:query => {:include_rts => 'true', :count => '200', :max_id => '244102729860009983'})).to have_been_made.times(3)
|
||
|
end
|
||
|
it 'returns the 20 most recent retweets posted by the authenticating user' do
|
||
|
tweets = @client.retweeted_by_me
|
||
|
expect(tweets).to be_an Array
|
||
|
expect(tweets.first).to be_a Twitter::Tweet
|
||
|
expect(tweets.first.text).to eq('RT @olivercameron: Mosaic looks cool: http://t.co/A8013C9k')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '#home_timeline' do
|
||
|
before do
|
||
|
stub_get('/1.1/statuses/home_timeline.json').to_return(:body => fixture('statuses.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
end
|
||
|
it 'requests the correct resource' do
|
||
|
@client.home_timeline
|
||
|
expect(a_get('/1.1/statuses/home_timeline.json')).to have_been_made
|
||
|
end
|
||
|
it 'returns the 20 most recent Tweets, including retweets if they exist, posted by the authenticating user and the users they follow' do
|
||
|
tweets = @client.home_timeline
|
||
|
expect(tweets).to be_an Array
|
||
|
expect(tweets.first).to be_a Twitter::Tweet
|
||
|
expect(tweets.first.text).to eq('Happy Birthday @imdane. Watch out for those @rally pranksters!')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '#retweeted_to_me' do
|
||
|
before do
|
||
|
stub_get('/1.1/statuses/home_timeline.json').with(:query => {:include_rts => 'true', :count => '200'}).to_return(:body => fixture('statuses.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
stub_get('/1.1/statuses/home_timeline.json').with(:query => {:include_rts => 'true', :count => '200', :max_id => '244102729860009983'}).to_return(:body => fixture('statuses.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
end
|
||
|
it 'requests the correct resource' do
|
||
|
@client.retweeted_to_me
|
||
|
expect(a_get('/1.1/statuses/home_timeline.json').with(:query => {:include_rts => 'true', :count => '200'})).to have_been_made
|
||
|
expect(a_get('/1.1/statuses/home_timeline.json').with(:query => {:include_rts => 'true', :count => '200', :max_id => '244102729860009983'})).to have_been_made.times(3)
|
||
|
end
|
||
|
it 'returns the 20 most recent retweets posted by users the authenticating user follow' do
|
||
|
tweets = @client.retweeted_to_me
|
||
|
expect(tweets).to be_an Array
|
||
|
expect(tweets.first).to be_a Twitter::Tweet
|
||
|
expect(tweets.first.text).to eq('RT @olivercameron: Mosaic looks cool: http://t.co/A8013C9k')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '#retweets_of_me' do
|
||
|
before do
|
||
|
stub_get('/1.1/statuses/retweets_of_me.json').to_return(:body => fixture('statuses.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
|
||
|
end
|
||
|
it 'requests the correct resource' do
|
||
|
@client.retweets_of_me
|
||
|
expect(a_get('/1.1/statuses/retweets_of_me.json')).to have_been_made
|
||
|
end
|
||
|
it 'returns the 20 most recent tweets of the authenticated user that have been retweeted by others' do
|
||
|
tweets = @client.retweets_of_me
|
||
|
expect(tweets).to be_an Array
|
||
|
expect(tweets.first).to be_a Twitter::Tweet
|
||
|
expect(tweets.first.text).to eq('Happy Birthday @imdane. Watch out for those @rally pranksters!')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|