twitter 4.2.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +4 -0
- data/lib/twitter/api/direct_messages.rb +150 -0
- data/lib/twitter/api/favorites.rb +132 -0
- data/lib/twitter/api/friends_and_followers.rb +259 -0
- data/lib/twitter/api/help.rb +64 -0
- data/lib/twitter/api/lists.rb +570 -0
- data/lib/twitter/api/places_and_geo.rb +121 -0
- data/lib/twitter/api/saved_searches.rb +98 -0
- data/lib/twitter/api/search.rb +37 -0
- data/lib/twitter/api/spam_reporting.rb +30 -0
- data/lib/twitter/api/suggested_users.rb +54 -0
- data/lib/twitter/api/timelines.rb +213 -0
- data/lib/twitter/api/trends.rb +63 -0
- data/lib/twitter/api/tweets.rb +284 -0
- data/lib/twitter/api/undocumented.rb +116 -0
- data/lib/twitter/api/users.rb +427 -0
- data/lib/twitter/api/utils.rb +111 -0
- data/lib/twitter/client.rb +41 -13
- data/lib/twitter/core_ext/enumerable.rb +1 -1
- data/lib/twitter/default.rb +16 -18
- data/lib/twitter/error/already_favorited.rb +1 -1
- data/lib/twitter/error/already_retweeted.rb +1 -1
- data/lib/twitter/profile_banner.rb +18 -0
- data/lib/twitter/version.rb +1 -1
- data/spec/fixtures/profile_banner.json +1 -0
- data/spec/twitter/api/direct_messages_spec.rb +32 -32
- data/spec/twitter/api/favorites_spec.rb +114 -0
- data/spec/twitter/api/{friendships_spec.rb → friends_and_followers_spec.rb} +146 -146
- data/spec/twitter/api/geo_spec.rb +28 -28
- data/spec/twitter/api/help_spec.rb +1 -1
- data/spec/twitter/api/lists_spec.rb +82 -82
- data/spec/twitter/api/saved_searches_spec.rb +1 -1
- data/spec/twitter/api/search_spec.rb +1 -17
- data/spec/twitter/api/{report_spam_spec.rb → spam_reporting_spec.rb} +1 -1
- data/spec/twitter/api/suggested_users_spec.rb +94 -0
- data/spec/twitter/api/timelines_spec.rb +138 -0
- data/spec/twitter/api/trends_spec.rb +1 -1
- data/spec/twitter/api/tweets_spec.rb +249 -0
- data/spec/twitter/api/undocumented_spec.rb +103 -0
- data/spec/twitter/api/users_spec.rb +308 -17
- data/spec/twitter/client_spec.rb +1 -1
- data/spec/twitter/profile_banner_spec.rb +13 -0
- data/twitter.gemspec +3 -2
- metadata +44 -21
- data/lib/twitter/api.rb +0 -2558
- data/spec/twitter/api/account_spec.rb +0 -152
- data/spec/twitter/api/activity_spec.rb +0 -37
- data/spec/twitter/api/blocks_spec.rb +0 -122
- data/spec/twitter/api/statuses_spec.rb +0 -541
@@ -1,152 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
describe Twitter::API do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@client = Twitter::Client.new
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "#verify_credentials" do
|
10
|
-
before do
|
11
|
-
stub_get("/1.1/account/verify_credentials.json").to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
12
|
-
end
|
13
|
-
it "requests the correct resource" do
|
14
|
-
@client.verify_credentials
|
15
|
-
expect(a_get("/1.1/account/verify_credentials.json")).to have_been_made
|
16
|
-
end
|
17
|
-
it "returns the requesting user" do
|
18
|
-
user = @client.verify_credentials
|
19
|
-
expect(user).to be_a Twitter::User
|
20
|
-
expect(user.id).to eq 7505382
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "#update_delivery_device" do
|
25
|
-
before do
|
26
|
-
stub_post("/1.1/account/update_delivery_device.json").with(:body => {:device => "sms"}).to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
27
|
-
end
|
28
|
-
it "requests the correct resource" do
|
29
|
-
@client.update_delivery_device("sms")
|
30
|
-
expect(a_post("/1.1/account/update_delivery_device.json").with(:body => {:device => "sms"})).to have_been_made
|
31
|
-
end
|
32
|
-
it "returns a user" do
|
33
|
-
user = @client.update_delivery_device("sms")
|
34
|
-
expect(user).to be_a Twitter::User
|
35
|
-
expect(user.id).to eq 7505382
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
describe "#update_profile" do
|
40
|
-
before do
|
41
|
-
stub_post("/1.1/account/update_profile.json").with(:body => {:url => "http://github.com/sferik/"}).to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
42
|
-
end
|
43
|
-
it "requests the correct resource" do
|
44
|
-
@client.update_profile(:url => "http://github.com/sferik/")
|
45
|
-
expect(a_post("/1.1/account/update_profile.json").with(:body => {:url => "http://github.com/sferik/"})).to have_been_made
|
46
|
-
end
|
47
|
-
it "returns a user" do
|
48
|
-
user = @client.update_profile(:url => "http://github.com/sferik/")
|
49
|
-
expect(user).to be_a Twitter::User
|
50
|
-
expect(user.id).to eq 7505382
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
describe "#update_profile_background_image" do
|
55
|
-
before do
|
56
|
-
stub_post("/1.1/account/update_profile_background_image.json").to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
57
|
-
end
|
58
|
-
it "requests the correct resource" do
|
59
|
-
@client.update_profile_background_image(fixture("we_concept_bg2.png"))
|
60
|
-
expect(a_post("/1.1/account/update_profile_background_image.json")).to have_been_made
|
61
|
-
end
|
62
|
-
it "returns a user" do
|
63
|
-
user = @client.update_profile_background_image(fixture("we_concept_bg2.png"))
|
64
|
-
expect(user).to be_a Twitter::User
|
65
|
-
expect(user.id).to eq 7505382
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
describe "#update_profile_colors" do
|
70
|
-
before do
|
71
|
-
stub_post("/1.1/account/update_profile_colors.json").with(:body => {:profile_background_color => "000000"}).to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
72
|
-
end
|
73
|
-
it "requests the correct resource" do
|
74
|
-
@client.update_profile_colors(:profile_background_color => "000000")
|
75
|
-
expect(a_post("/1.1/account/update_profile_colors.json").with(:body => {:profile_background_color => "000000"})).to have_been_made
|
76
|
-
end
|
77
|
-
it "returns a user" do
|
78
|
-
user = @client.update_profile_colors(:profile_background_color => "000000")
|
79
|
-
expect(user).to be_a Twitter::User
|
80
|
-
expect(user.id).to eq 7505382
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
describe "#update_profile_image" do
|
85
|
-
before do
|
86
|
-
stub_post("/1.1/account/update_profile_image.json").to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
87
|
-
end
|
88
|
-
it "requests the correct resource" do
|
89
|
-
@client.update_profile_image(fixture("me.jpeg"))
|
90
|
-
expect(a_post("/1.1/account/update_profile_image.json")).to have_been_made
|
91
|
-
end
|
92
|
-
it "returns a user" do
|
93
|
-
user = @client.update_profile_image(fixture("me.jpeg"))
|
94
|
-
expect(user).to be_a Twitter::User
|
95
|
-
expect(user.id).to eq 7505382
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
describe "#update_profile_banner" do
|
100
|
-
before do
|
101
|
-
stub_post("/1.1/account/update_profile_banner.json").to_return(:body => fixture("empty.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
102
|
-
end
|
103
|
-
it "requests the correct resource" do
|
104
|
-
@client.update_profile_banner(fixture("me.jpeg"))
|
105
|
-
expect(a_post("/1.1/account/update_profile_banner.json")).to have_been_made
|
106
|
-
end
|
107
|
-
it "returns a user" do
|
108
|
-
user = @client.update_profile_banner(fixture("me.jpeg"))
|
109
|
-
expect(user).to be_nil
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
describe "#remove_profile_banner" do
|
114
|
-
before do
|
115
|
-
stub_post("/1.1/account/remove_profile_banner.json").to_return(:body => fixture("empty.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
116
|
-
end
|
117
|
-
it "requests the correct resource" do
|
118
|
-
@client.remove_profile_banner
|
119
|
-
expect(a_post("/1.1/account/remove_profile_banner.json")).to have_been_made
|
120
|
-
end
|
121
|
-
it "returns a user" do
|
122
|
-
user = @client.remove_profile_banner
|
123
|
-
expect(user).to be_nil
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
describe "#settings" do
|
128
|
-
before do
|
129
|
-
stub_get("/1.1/account/settings.json").to_return(:body => fixture("settings.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
130
|
-
stub_post("/1.1/account/settings.json").with(:body => {:trend_location_woeid => "23424803"}).to_return(:body => fixture("settings.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
131
|
-
end
|
132
|
-
it "requests the correct resource on GET" do
|
133
|
-
@client.settings
|
134
|
-
expect(a_get("/1.1/account/settings.json")).to have_been_made
|
135
|
-
end
|
136
|
-
it "returns settings" do
|
137
|
-
settings = @client.settings
|
138
|
-
expect(settings).to be_a Twitter::Settings
|
139
|
-
expect(settings.language).to eq 'en'
|
140
|
-
end
|
141
|
-
it "requests the correct resource on POST" do
|
142
|
-
@client.settings(:trend_location_woeid => "23424803")
|
143
|
-
expect(a_post("/1.1/account/settings.json").with(:body => {:trend_location_woeid => "23424803"})).to have_been_made
|
144
|
-
end
|
145
|
-
it "returns settings" do
|
146
|
-
settings = @client.settings(:trend_location_woeid => "23424803")
|
147
|
-
expect(settings).to be_a Twitter::Settings
|
148
|
-
expect(settings.language).to eq 'en'
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
describe Twitter::API do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@client = Twitter::Client.new
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "#activity_about_me" do
|
10
|
-
before do
|
11
|
-
stub_get("/i/activity/about_me.json").to_return(:body => fixture("about_me.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
12
|
-
end
|
13
|
-
it "requests the correct resource" do
|
14
|
-
@client.activity_about_me
|
15
|
-
expect(a_get("/i/activity/about_me.json")).to have_been_made
|
16
|
-
end
|
17
|
-
it "returns activity about me" do
|
18
|
-
activity_about_me = @client.activity_about_me
|
19
|
-
expect(activity_about_me.first).to be_a Twitter::Action::Mention
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
describe "#activity_by_friends" do
|
24
|
-
before do
|
25
|
-
stub_get("/i/activity/by_friends.json").to_return(:body => fixture("by_friends.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
26
|
-
end
|
27
|
-
it "requests the correct resource" do
|
28
|
-
@client.activity_by_friends
|
29
|
-
expect(a_get("/i/activity/by_friends.json")).to have_been_made
|
30
|
-
end
|
31
|
-
it "returns activity by friends" do
|
32
|
-
activity_by_friends = @client.activity_by_friends
|
33
|
-
expect(activity_by_friends.first).to be_a Twitter::Action::Favorite
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
@@ -1,122 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
describe Twitter::API do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@client = Twitter::Client.new
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "#blocking" do
|
10
|
-
before do
|
11
|
-
stub_get("/1.1/blocks/list.json").with(:query => {:cursor => "-1"}).to_return(:body => fixture("users_list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
12
|
-
end
|
13
|
-
it "requests the correct resource" do
|
14
|
-
@client.blocking
|
15
|
-
expect(a_get("/1.1/blocks/list.json").with(:query => {:cursor => "-1"})).to have_been_made
|
16
|
-
end
|
17
|
-
it "returns an array of user objects that the authenticating user is blocking" do
|
18
|
-
blocking = @client.blocking
|
19
|
-
expect(blocking).to be_a Twitter::Cursor
|
20
|
-
expect(blocking.users).to be_an Array
|
21
|
-
expect(blocking.users.first).to be_a Twitter::User
|
22
|
-
expect(blocking.users.first.id).to eq 7505382
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "#blocked_ids" do
|
27
|
-
before do
|
28
|
-
stub_get("/1.1/blocks/ids.json").with(:query => {:cursor => "-1"}).to_return(:body => fixture("ids_list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
29
|
-
end
|
30
|
-
it "requests the correct resource" do
|
31
|
-
@client.blocked_ids
|
32
|
-
expect(a_get("/1.1/blocks/ids.json").with(:query => {:cursor => "-1"})).to have_been_made
|
33
|
-
end
|
34
|
-
it "returns an array of numeric user IDs the authenticating user is blocking" do
|
35
|
-
blocked_ids = @client.blocked_ids
|
36
|
-
expect(blocked_ids).to be_a Twitter::Cursor
|
37
|
-
expect(blocked_ids.ids).to be_an Array
|
38
|
-
expect(blocked_ids.ids.first).to eq 14100886
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe "#block?" do
|
43
|
-
context "with a screen name passed" do
|
44
|
-
before do
|
45
|
-
stub_get("/1.1/blocks/ids.json").with(:query => {:cursor => "-1"}).to_return(:body => fixture("ids_list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
46
|
-
stub_get("/1.1/blocks/ids.json").with(:query => {:cursor => "1305102810874389703"}).to_return(:body => fixture("ids_list2.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
47
|
-
stub_get("/1.1/users/show.json").with(:query => {:screen_name => "pengwynn"}).to_return(:body => fixture("pengwynn.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
48
|
-
stub_get("/1.1/users/show.json").with(:query => {:screen_name => "sferik"}).to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
49
|
-
end
|
50
|
-
it "requests the correct resource" do
|
51
|
-
@client.block?("sferik")
|
52
|
-
expect(a_get("/1.1/blocks/ids.json").with(:query => {:cursor => "-1"})).to have_been_made
|
53
|
-
expect(a_get("/1.1/blocks/ids.json").with(:query => {:cursor => "1305102810874389703"})).to have_been_made
|
54
|
-
expect(a_get("/1.1/users/show.json").with(:query => {:screen_name => "sferik"})).to have_been_made
|
55
|
-
end
|
56
|
-
it "returns true if block exists" do
|
57
|
-
block = @client.block?("pengwynn")
|
58
|
-
expect(block).to be_true
|
59
|
-
end
|
60
|
-
it "returns false if block does not exist" do
|
61
|
-
block = @client.block?("sferik")
|
62
|
-
expect(block).to be_false
|
63
|
-
end
|
64
|
-
end
|
65
|
-
context "with a user ID passed" do
|
66
|
-
before do
|
67
|
-
stub_get("/1.1/blocks/ids.json").with(:query => {:cursor => "-1"}).to_return(:body => fixture("ids_list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
68
|
-
stub_get("/1.1/blocks/ids.json").with(:query => {:cursor => "1305102810874389703"}).to_return(:body => fixture("ids_list2.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
69
|
-
end
|
70
|
-
it "requests the correct resources" do
|
71
|
-
@client.block?(7505382)
|
72
|
-
expect(a_get("/1.1/blocks/ids.json").with(:query => {:cursor => "-1"})).to have_been_made
|
73
|
-
expect(a_get("/1.1/blocks/ids.json").with(:query => {:cursor => "1305102810874389703"})).to have_been_made
|
74
|
-
end
|
75
|
-
end
|
76
|
-
context "with a user object passed" do
|
77
|
-
before do
|
78
|
-
stub_get("/1.1/blocks/ids.json").with(:query => {:cursor => "-1"}).to_return(:body => fixture("ids_list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
79
|
-
stub_get("/1.1/blocks/ids.json").with(:query => {:cursor => "1305102810874389703"}).to_return(:body => fixture("ids_list2.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
80
|
-
end
|
81
|
-
it "requests the correct resources" do
|
82
|
-
user = Twitter::User.new(:id => '7505382')
|
83
|
-
@client.block?(user)
|
84
|
-
expect(a_get("/1.1/blocks/ids.json").with(:query => {:cursor => "-1"})).to have_been_made
|
85
|
-
expect(a_get("/1.1/blocks/ids.json").with(:query => {:cursor => "1305102810874389703"})).to have_been_made
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
describe "#block" do
|
91
|
-
before do
|
92
|
-
stub_post("/1.1/blocks/create.json").with(:body => {:screen_name => "sferik"}).to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
93
|
-
end
|
94
|
-
it "requests the correct resource" do
|
95
|
-
@client.block("sferik")
|
96
|
-
expect(a_post("/1.1/blocks/create.json")).to have_been_made
|
97
|
-
end
|
98
|
-
it "returns an array of blocked users" do
|
99
|
-
users = @client.block("sferik")
|
100
|
-
expect(users).to be_an Array
|
101
|
-
expect(users.first).to be_a Twitter::User
|
102
|
-
expect(users.first.id).to eq 7505382
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
describe "#unblock" do
|
107
|
-
before do
|
108
|
-
stub_post("/1.1/blocks/destroy.json").with(:body => {:screen_name => "sferik"}).to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
109
|
-
end
|
110
|
-
it "requests the correct resource" do
|
111
|
-
@client.unblock("sferik")
|
112
|
-
expect(a_post("/1.1/blocks/destroy.json").with(:body => {:screen_name => "sferik"})).to have_been_made
|
113
|
-
end
|
114
|
-
it "returns an array of un-blocked users" do
|
115
|
-
users = @client.unblock("sferik")
|
116
|
-
expect(users).to be_an Array
|
117
|
-
expect(users.first).to be_a Twitter::User
|
118
|
-
expect(users.first.id).to eq 7505382
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
end
|
@@ -1,541 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
describe Twitter::API do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@client = Twitter::Client.new
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "#favorites" do
|
10
|
-
context "with a screen name passed" do
|
11
|
-
before do
|
12
|
-
stub_get("/1.1/favorites/list.json").with(:query => {:screen_name => "sferik"}).to_return(:body => fixture("favorites.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
13
|
-
end
|
14
|
-
it "requests the correct resource" do
|
15
|
-
@client.favorites("sferik")
|
16
|
-
expect(a_get("/1.1/favorites/list.json").with(:query => {:screen_name => "sferik"})).to have_been_made
|
17
|
-
end
|
18
|
-
it "returns the 20 most recent favorite Tweets for the authenticating user or user specified by the ID parameter" do
|
19
|
-
favorites = @client.favorites("sferik")
|
20
|
-
expect(favorites).to be_an Array
|
21
|
-
expect(favorites.first).to be_a Twitter::Tweet
|
22
|
-
expect(favorites.first.user.id).to eq 2404341
|
23
|
-
end
|
24
|
-
end
|
25
|
-
context "without arguments passed" do
|
26
|
-
before do
|
27
|
-
stub_get("/1.1/favorites/list.json").to_return(:body => fixture("favorites.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
28
|
-
end
|
29
|
-
it "requests the correct resource" do
|
30
|
-
@client.favorites
|
31
|
-
expect(a_get("/1.1/favorites/list.json")).to have_been_made
|
32
|
-
end
|
33
|
-
it "returns the 20 most recent favorite Tweets for the authenticating user or user specified by the ID parameter" do
|
34
|
-
favorites = @client.favorites
|
35
|
-
expect(favorites).to be_an Array
|
36
|
-
expect(favorites.first).to be_a Twitter::Tweet
|
37
|
-
expect(favorites.first.user.id).to eq 2404341
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe "#favorite" do
|
43
|
-
before do
|
44
|
-
stub_post("/1.1/favorites/create.json").with(:body => {:id => "25938088801"}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
45
|
-
end
|
46
|
-
it "requests the correct resource" do
|
47
|
-
@client.favorite(25938088801)
|
48
|
-
expect(a_post("/1.1/favorites/create.json").with(:body => {:id => "25938088801"})).to have_been_made
|
49
|
-
end
|
50
|
-
it "returns an array of favorited Tweets" do
|
51
|
-
tweets = @client.favorite(25938088801)
|
52
|
-
expect(tweets).to be_an Array
|
53
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
54
|
-
expect(tweets.first.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
|
55
|
-
end
|
56
|
-
context "already favorited" do
|
57
|
-
before do
|
58
|
-
stub_post("/1.1/favorites/create.json").with(:body => {:id => "25938088801"}).to_return(:status => 403, :body => fixture("already_favorited.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
59
|
-
end
|
60
|
-
it "does not raises an error" do
|
61
|
-
expect{@client.favorite(25938088801)}.not_to raise_error
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
describe "#favorite!" do
|
67
|
-
before do
|
68
|
-
stub_post("/1.1/favorites/create.json").with(:body => {:id => "25938088801"}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
69
|
-
end
|
70
|
-
it "requests the correct resource" do
|
71
|
-
@client.favorite!(25938088801)
|
72
|
-
expect(a_post("/1.1/favorites/create.json").with(:body => {:id => "25938088801"})).to have_been_made
|
73
|
-
end
|
74
|
-
it "returns an array of favorited Tweets" do
|
75
|
-
tweets = @client.favorite!(25938088801)
|
76
|
-
expect(tweets).to be_an Array
|
77
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
78
|
-
expect(tweets.first.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
|
79
|
-
end
|
80
|
-
context "forbidden" do
|
81
|
-
before do
|
82
|
-
stub_post("/1.1/favorites/create.json").with(:body => {:id => "25938088801"}).to_return(:status => 403, :headers => {:content_type => "application/json; charset=utf-8"})
|
83
|
-
end
|
84
|
-
it "raises a Forbidden error" do
|
85
|
-
expect{@client.favorite!(25938088801)}.to raise_error(Twitter::Error::Forbidden)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
context "already favorited" do
|
89
|
-
before do
|
90
|
-
stub_post("/1.1/favorites/create.json").with(:body => {:id => "25938088801"}).to_return(:status => 403, :body => fixture("already_favorited.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
91
|
-
end
|
92
|
-
it "raises an AlreadyFavorited error" do
|
93
|
-
expect{@client.favorite!(25938088801)}.to raise_error(Twitter::Error::AlreadyFavorited, "Tweet with the ID 25938088801 has already been favorited by the authenticated user.")
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
describe "#unfavorite" do
|
99
|
-
before do
|
100
|
-
stub_post("/1.1/favorites/destroy.json").with(:body => {:id => "25938088801"}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
101
|
-
end
|
102
|
-
it "requests the correct resource" do
|
103
|
-
@client.unfavorite(25938088801)
|
104
|
-
expect(a_post("/1.1/favorites/destroy.json").with(:body => {:id => "25938088801"})).to have_been_made
|
105
|
-
end
|
106
|
-
it "returns an array of un-favorited Tweets" do
|
107
|
-
tweets = @client.unfavorite(25938088801)
|
108
|
-
expect(tweets).to be_an Array
|
109
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
110
|
-
expect(tweets.first.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
describe "#home_timeline" do
|
115
|
-
before do
|
116
|
-
stub_get("/1.1/statuses/home_timeline.json").to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
117
|
-
end
|
118
|
-
it "requests the correct resource" do
|
119
|
-
@client.home_timeline
|
120
|
-
expect(a_get("/1.1/statuses/home_timeline.json")).to have_been_made
|
121
|
-
end
|
122
|
-
it "returns the 20 most recent Tweets, including retweets if they exist, posted by the authenticating user and the user's they follow" do
|
123
|
-
tweets = @client.home_timeline
|
124
|
-
expect(tweets).to be_an Array
|
125
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
126
|
-
expect(tweets.first.text).to eq "Happy Birthday @imdane. Watch out for those @rally pranksters!"
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
describe "#mentions_timeline" do
|
131
|
-
before do
|
132
|
-
stub_get("/1.1/statuses/mentions_timeline.json").to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
133
|
-
end
|
134
|
-
it "requests the correct resource" do
|
135
|
-
@client.mentions_timeline
|
136
|
-
expect(a_get("/1.1/statuses/mentions_timeline.json")).to have_been_made
|
137
|
-
end
|
138
|
-
it "returns the 20 most recent mentions (status containing @username) for the authenticating user" do
|
139
|
-
tweets = @client.mentions_timeline
|
140
|
-
expect(tweets).to be_an Array
|
141
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
142
|
-
expect(tweets.first.text).to eq "Happy Birthday @imdane. Watch out for those @rally pranksters!"
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
describe "#retweeted_by_user" do
|
147
|
-
before do
|
148
|
-
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"})
|
149
|
-
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"})
|
150
|
-
end
|
151
|
-
it "requests the correct resource" do
|
152
|
-
@client.retweeted_by_user("sferik")
|
153
|
-
expect(a_get("/1.1/statuses/user_timeline.json").with(:query => {:include_rts => "true", :screen_name => "sferik", :count => "200"})).to have_been_made
|
154
|
-
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)
|
155
|
-
end
|
156
|
-
it "returns the 20 most recent retweets posted by the authenticating user" do
|
157
|
-
tweets = @client.retweeted_by_user("sferik")
|
158
|
-
expect(tweets).to be_an Array
|
159
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
160
|
-
expect(tweets.first.text).to eq "RT @olivercameron: Mosaic looks cool: http://t.co/A8013C9k"
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
describe "#retweeted_by_me" do
|
165
|
-
before do
|
166
|
-
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"})
|
167
|
-
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"})
|
168
|
-
end
|
169
|
-
it "requests the correct resource" do
|
170
|
-
@client.retweeted_by_me
|
171
|
-
expect(a_get("/1.1/statuses/user_timeline.json").with(:query => {:include_rts => "true", :count => "200"})).to have_been_made
|
172
|
-
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)
|
173
|
-
end
|
174
|
-
it "returns the 20 most recent retweets posted by the authenticating user" do
|
175
|
-
tweets = @client.retweeted_by_me
|
176
|
-
expect(tweets).to be_an Array
|
177
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
178
|
-
expect(tweets.first.text).to eq "RT @olivercameron: Mosaic looks cool: http://t.co/A8013C9k"
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
describe "#retweeted_to_me" do
|
183
|
-
before do
|
184
|
-
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"})
|
185
|
-
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"})
|
186
|
-
end
|
187
|
-
it "requests the correct resource" do
|
188
|
-
@client.retweeted_to_me
|
189
|
-
expect(stub_get("/1.1/statuses/home_timeline.json").with(:query => {:include_rts => "true", :count => "200"})).to have_been_made
|
190
|
-
expect(stub_get("/1.1/statuses/home_timeline.json").with(:query => {:include_rts => "true", :count => "200", :max_id => "244102729860009983"})).to have_been_made.times(3)
|
191
|
-
end
|
192
|
-
it "returns the 20 most recent retweets posted by users the authenticating user follow" do
|
193
|
-
tweets = @client.retweeted_to_me
|
194
|
-
expect(tweets).to be_an Array
|
195
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
196
|
-
expect(tweets.first.text).to eq "RT @olivercameron: Mosaic looks cool: http://t.co/A8013C9k"
|
197
|
-
end
|
198
|
-
end
|
199
|
-
|
200
|
-
describe "#retweets_of_me" do
|
201
|
-
before do
|
202
|
-
stub_get("/1.1/statuses/retweets_of_me.json").to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
203
|
-
end
|
204
|
-
it "requests the correct resource" do
|
205
|
-
@client.retweets_of_me
|
206
|
-
expect(a_get("/1.1/statuses/retweets_of_me.json")).to have_been_made
|
207
|
-
end
|
208
|
-
it "returns the 20 most recent tweets of the authenticated user that have been retweeted by others" do
|
209
|
-
tweets = @client.retweets_of_me
|
210
|
-
expect(tweets).to be_an Array
|
211
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
212
|
-
expect(tweets.first.text).to eq "Happy Birthday @imdane. Watch out for those @rally pranksters!"
|
213
|
-
end
|
214
|
-
end
|
215
|
-
|
216
|
-
describe "#user_timeline" do
|
217
|
-
context "with a screen name passed" do
|
218
|
-
before do
|
219
|
-
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"})
|
220
|
-
end
|
221
|
-
it "requests the correct resource" do
|
222
|
-
@client.user_timeline("sferik")
|
223
|
-
expect(a_get("/1.1/statuses/user_timeline.json").with(:query => {:screen_name => "sferik"})).to have_been_made
|
224
|
-
end
|
225
|
-
it "returns the 20 most recent Tweets posted by the user specified by screen name or user id" do
|
226
|
-
tweets = @client.user_timeline("sferik")
|
227
|
-
expect(tweets).to be_an Array
|
228
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
229
|
-
expect(tweets.first.text).to eq "Happy Birthday @imdane. Watch out for those @rally pranksters!"
|
230
|
-
end
|
231
|
-
end
|
232
|
-
context "without a screen name passed" do
|
233
|
-
before do
|
234
|
-
stub_get("/1.1/statuses/user_timeline.json").to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
235
|
-
end
|
236
|
-
it "requests the correct resource" do
|
237
|
-
@client.user_timeline
|
238
|
-
expect(a_get("/1.1/statuses/user_timeline.json")).to have_been_made
|
239
|
-
end
|
240
|
-
end
|
241
|
-
end
|
242
|
-
|
243
|
-
describe "#media_timeline" do
|
244
|
-
context "with a screen name passed" do
|
245
|
-
before do
|
246
|
-
stub_get("/1.1/statuses/media_timeline.json").with(:query => {:screen_name => "sferik"}).to_return(:body => fixture("media_timeline.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
247
|
-
end
|
248
|
-
it "requests the correct resource" do
|
249
|
-
@client.media_timeline("sferik")
|
250
|
-
expect(a_get("/1.1/statuses/media_timeline.json").with(:query => {:screen_name => "sferik"})).to have_been_made
|
251
|
-
end
|
252
|
-
it "returns the 20 most recent images posted by the user specified by screen name or user id" do
|
253
|
-
tweets = @client.media_timeline("sferik")
|
254
|
-
expect(tweets).to be_an Array
|
255
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
256
|
-
expect(tweets.first.text).to eq "Google is throwing up a question mark for Sunday's weather in Boston. At least they're being honest. http://t.co/Jh7bAhS"
|
257
|
-
end
|
258
|
-
end
|
259
|
-
context "without a screen name passed" do
|
260
|
-
before do
|
261
|
-
stub_get("/1.1/statuses/media_timeline.json").to_return(:body => fixture("media_timeline.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
262
|
-
end
|
263
|
-
it "requests the correct resource" do
|
264
|
-
@client.media_timeline
|
265
|
-
expect(a_get("/1.1/statuses/media_timeline.json")).to have_been_made
|
266
|
-
end
|
267
|
-
end
|
268
|
-
end
|
269
|
-
|
270
|
-
describe "#retweeters_of" do
|
271
|
-
context "with ids_only passed" do
|
272
|
-
before do
|
273
|
-
stub_get("/1.1/statuses/retweets/28561922516.json").to_return(:body => fixture("retweets.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
274
|
-
end
|
275
|
-
it "requests the correct resource" do
|
276
|
-
@client.retweeters_of(28561922516, :ids_only => true)
|
277
|
-
expect(a_get("/1.1/statuses/retweets/28561922516.json")).to have_been_made
|
278
|
-
end
|
279
|
-
it "returns an array of numeric user IDs of retweeters of a Tweet" do
|
280
|
-
ids = @client.retweeters_of(28561922516, :ids_only => true)
|
281
|
-
expect(ids).to be_an Array
|
282
|
-
expect(ids.first).to eq 7505382
|
283
|
-
end
|
284
|
-
end
|
285
|
-
context "without ids_only passed" do
|
286
|
-
before do
|
287
|
-
stub_get("/1.1/statuses/retweets/28561922516.json").to_return(:body => fixture("retweets.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
288
|
-
end
|
289
|
-
it "requests the correct resource" do
|
290
|
-
@client.retweeters_of(28561922516)
|
291
|
-
expect(a_get("/1.1/statuses/retweets/28561922516.json")).to have_been_made
|
292
|
-
end
|
293
|
-
it "returns an array of user of retweeters of a Tweet" do
|
294
|
-
users = @client.retweeters_of(28561922516)
|
295
|
-
expect(users).to be_an Array
|
296
|
-
expect(users.first).to be_a Twitter::User
|
297
|
-
expect(users.first.id).to eq 7505382
|
298
|
-
end
|
299
|
-
end
|
300
|
-
end
|
301
|
-
|
302
|
-
describe "#retweets" do
|
303
|
-
before do
|
304
|
-
stub_get("/1.1/statuses/retweets/28561922516.json").to_return(:body => fixture("retweets.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
305
|
-
end
|
306
|
-
it "requests the correct resource" do
|
307
|
-
@client.retweets(28561922516)
|
308
|
-
expect(a_get("/1.1/statuses/retweets/28561922516.json")).to have_been_made
|
309
|
-
end
|
310
|
-
it "returns up to 100 of the first retweets of a given tweet" do
|
311
|
-
tweets = @client.retweets(28561922516)
|
312
|
-
expect(tweets).to be_an Array
|
313
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
314
|
-
expect(tweets.first.text).to eq "RT @gruber: As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush."
|
315
|
-
end
|
316
|
-
end
|
317
|
-
|
318
|
-
describe "#status" do
|
319
|
-
before do
|
320
|
-
stub_get("/1.1/statuses/show/25938088801.json").to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
321
|
-
end
|
322
|
-
it "requests the correct resource" do
|
323
|
-
@client.status(25938088801)
|
324
|
-
expect(a_get("/1.1/statuses/show/25938088801.json")).to have_been_made
|
325
|
-
end
|
326
|
-
it "returns a Tweet" do
|
327
|
-
tweet = @client.status(25938088801)
|
328
|
-
expect(tweet).to be_a Twitter::Tweet
|
329
|
-
expect(tweet.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
|
330
|
-
end
|
331
|
-
end
|
332
|
-
|
333
|
-
describe "#statuses" do
|
334
|
-
before do
|
335
|
-
stub_get("/1.1/statuses/show/25938088801.json").to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
336
|
-
end
|
337
|
-
it "requests the correct resource" do
|
338
|
-
@client.statuses(25938088801)
|
339
|
-
expect(a_get("/1.1/statuses/show/25938088801.json")).to have_been_made
|
340
|
-
end
|
341
|
-
it "returns an array of Tweets" do
|
342
|
-
tweets = @client.statuses(25938088801)
|
343
|
-
expect(tweets).to be_an Array
|
344
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
345
|
-
expect(tweets.first.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
|
346
|
-
end
|
347
|
-
end
|
348
|
-
|
349
|
-
describe "#status_activity" do
|
350
|
-
before do
|
351
|
-
stub_get("/i/statuses/25938088801/activity/summary.json").to_return(:body => fixture("activity_summary.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
352
|
-
end
|
353
|
-
it "requests the correct resource" do
|
354
|
-
@client.status_activity(25938088801)
|
355
|
-
expect(a_get("/i/statuses/25938088801/activity/summary.json")).to have_been_made
|
356
|
-
end
|
357
|
-
it "returns a Tweet" do
|
358
|
-
tweet = @client.status_activity(25938088801)
|
359
|
-
expect(tweet).to be_a Twitter::Tweet
|
360
|
-
expect(tweet.retweeters_count).to eq 1
|
361
|
-
end
|
362
|
-
end
|
363
|
-
|
364
|
-
describe "#statuses_activity" do
|
365
|
-
before do
|
366
|
-
stub_get("/i/statuses/25938088801/activity/summary.json").to_return(:body => fixture("activity_summary.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
367
|
-
end
|
368
|
-
it "requests the correct resource" do
|
369
|
-
@client.statuses_activity(25938088801)
|
370
|
-
expect(a_get("/i/statuses/25938088801/activity/summary.json")).to have_been_made
|
371
|
-
end
|
372
|
-
it "returns an array of Tweets" do
|
373
|
-
tweets = @client.statuses_activity(25938088801)
|
374
|
-
expect(tweets).to be_an Array
|
375
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
376
|
-
expect(tweets.first.retweeters_count).to eq 1
|
377
|
-
end
|
378
|
-
end
|
379
|
-
|
380
|
-
describe "#status_destroy" do
|
381
|
-
before do
|
382
|
-
stub_post("/1.1/statuses/destroy/25938088801.json").to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
383
|
-
end
|
384
|
-
it "requests the correct resource" do
|
385
|
-
@client.status_destroy(25938088801)
|
386
|
-
expect(a_post("/1.1/statuses/destroy/25938088801.json")).to have_been_made
|
387
|
-
end
|
388
|
-
it "returns an array of Tweets" do
|
389
|
-
tweets = @client.status_destroy(25938088801)
|
390
|
-
expect(tweets).to be_an Array
|
391
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
392
|
-
expect(tweets.first.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
|
393
|
-
end
|
394
|
-
end
|
395
|
-
|
396
|
-
describe "#retweet" do
|
397
|
-
before do
|
398
|
-
stub_post("/1.1/statuses/retweet/28561922516.json").to_return(:body => fixture("retweet.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
399
|
-
end
|
400
|
-
it "requests the correct resource" do
|
401
|
-
@client.retweet(28561922516)
|
402
|
-
expect(a_post("/1.1/statuses/retweet/28561922516.json")).to have_been_made
|
403
|
-
end
|
404
|
-
it "returns an array of Tweets with retweet details embedded" do
|
405
|
-
tweets = @client.retweet(28561922516)
|
406
|
-
expect(tweets).to be_an Array
|
407
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
408
|
-
expect(tweets.first.text).to eq "As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush."
|
409
|
-
expect(tweets.first.retweeted_tweet.text).to eq "RT @gruber: As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush."
|
410
|
-
expect(tweets.first.retweeted_tweet.id).not_to eq tweets.first.id
|
411
|
-
end
|
412
|
-
context "already retweeted" do
|
413
|
-
before do
|
414
|
-
stub_post("/1.1/statuses/retweet/28561922516.json").to_return(:status => 403, :body => fixture("already_retweeted.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
415
|
-
end
|
416
|
-
it "does not raise an error" do
|
417
|
-
expect{@client.retweet(28561922516)}.not_to raise_error
|
418
|
-
end
|
419
|
-
end
|
420
|
-
end
|
421
|
-
|
422
|
-
describe "#retweet!" do
|
423
|
-
before do
|
424
|
-
stub_post("/1.1/statuses/retweet/28561922516.json").to_return(:body => fixture("retweet.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
425
|
-
end
|
426
|
-
it "requests the correct resource" do
|
427
|
-
@client.retweet!(28561922516)
|
428
|
-
expect(a_post("/1.1/statuses/retweet/28561922516.json")).to have_been_made
|
429
|
-
end
|
430
|
-
it "returns an array of Tweets with retweet details embedded" do
|
431
|
-
tweets = @client.retweet!(28561922516)
|
432
|
-
expect(tweets).to be_an Array
|
433
|
-
expect(tweets.first).to be_a Twitter::Tweet
|
434
|
-
expect(tweets.first.text).to eq "As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush."
|
435
|
-
expect(tweets.first.retweeted_tweet.text).to eq "RT @gruber: As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush."
|
436
|
-
expect(tweets.first.retweeted_tweet.id).not_to eq tweets.first.id
|
437
|
-
end
|
438
|
-
context "fobidden" do
|
439
|
-
before do
|
440
|
-
stub_post("/1.1/statuses/retweet/28561922516.json").to_return(:status => 403, :headers => {:content_type => "application/json; charset=utf-8"})
|
441
|
-
end
|
442
|
-
it "raises a Forbidden error" do
|
443
|
-
expect{@client.retweet!(28561922516)}.to raise_error(Twitter::Error::Forbidden)
|
444
|
-
end
|
445
|
-
end
|
446
|
-
context "already retweeted" do
|
447
|
-
before do
|
448
|
-
stub_post("/1.1/statuses/retweet/28561922516.json").to_return(:status => 403, :body => fixture("already_retweeted.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
449
|
-
end
|
450
|
-
it "raises an AlreadyRetweeted error" do
|
451
|
-
expect{@client.retweet!(28561922516)}.to raise_error(Twitter::Error::AlreadyRetweeted, "Tweet with the ID 28561922516 has already been retweeted by the authenticated user.")
|
452
|
-
end
|
453
|
-
end
|
454
|
-
end
|
455
|
-
|
456
|
-
describe "#tweet" do
|
457
|
-
before do
|
458
|
-
stub_post("/1.1/statuses/update.json").with(:body => {:status => "The problem with your code is that it's doing exactly what you told it to do."}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
459
|
-
end
|
460
|
-
it "requests the correct resource" do
|
461
|
-
@client.update("The problem with your code is that it's doing exactly what you told it to do.")
|
462
|
-
expect(a_post("/1.1/statuses/update.json").with(:body => {:status => "The problem with your code is that it's doing exactly what you told it to do."})).to have_been_made
|
463
|
-
end
|
464
|
-
it "returns a Tweet" do
|
465
|
-
tweet = @client.update("The problem with your code is that it's doing exactly what you told it to do.")
|
466
|
-
expect(tweet).to be_a Twitter::Tweet
|
467
|
-
expect(tweet.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
|
468
|
-
end
|
469
|
-
end
|
470
|
-
|
471
|
-
describe "#update_with_media" do
|
472
|
-
before do
|
473
|
-
stub_post("/1.1/statuses/update_with_media.json").to_return(:body => fixture("status_with_media.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
474
|
-
end
|
475
|
-
context "a gif image" do
|
476
|
-
it "requests the correct resource" do
|
477
|
-
@client.update_with_media("You always have options", fixture("pbjt.gif"))
|
478
|
-
expect(a_post("/1.1/statuses/update_with_media.json")).to have_been_made
|
479
|
-
end
|
480
|
-
it "returns a Tweet" do
|
481
|
-
tweet = @client.update_with_media("You always have options", fixture("pbjt.gif"))
|
482
|
-
expect(tweet).to be_a Twitter::Tweet
|
483
|
-
expect(tweet.text).to eq "You always have options http://t.co/CBYa7Ri"
|
484
|
-
end
|
485
|
-
end
|
486
|
-
context "a jpe image" do
|
487
|
-
it "requests the correct resource" do
|
488
|
-
@client.update_with_media("You always have options", fixture("wildcomet2.jpe"))
|
489
|
-
expect(a_post("/1.1/statuses/update_with_media.json")).to have_been_made
|
490
|
-
end
|
491
|
-
end
|
492
|
-
context "a jpeg image" do
|
493
|
-
it "requests the correct resource" do
|
494
|
-
@client.update_with_media("You always have options", fixture("me.jpeg"))
|
495
|
-
expect(a_post("/1.1/statuses/update_with_media.json")).to have_been_made
|
496
|
-
end
|
497
|
-
end
|
498
|
-
context "a png image" do
|
499
|
-
it "requests the correct resource" do
|
500
|
-
@client.update_with_media("You always have options", fixture("we_concept_bg2.png"))
|
501
|
-
expect(a_post("/1.1/statuses/update_with_media.json")).to have_been_made
|
502
|
-
end
|
503
|
-
end
|
504
|
-
context "a Tempfile" do
|
505
|
-
it "requests the correct resource" do
|
506
|
-
@client.update_with_media("You always have options", Tempfile.new("tmp"))
|
507
|
-
expect(a_post("/1.1/statuses/update_with_media.json")).to have_been_made
|
508
|
-
end
|
509
|
-
end
|
510
|
-
end
|
511
|
-
|
512
|
-
describe "#oembed" do
|
513
|
-
before do
|
514
|
-
stub_get("/1.1/statuses/oembed.json").with(:query => {:id => "25938088801"}).to_return(:body => fixture("oembed.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
515
|
-
end
|
516
|
-
it "requests the correct resource" do
|
517
|
-
@client.oembed(25938088801)
|
518
|
-
expect(a_get("/1.1/statuses/oembed.json").with(:query => {:id => "25938088801"})).to have_been_made
|
519
|
-
end
|
520
|
-
it "returns an array of OEmbed instances" do
|
521
|
-
oembed = @client.oembed(25938088801)
|
522
|
-
expect(oembed).to be_a Twitter::OEmbed
|
523
|
-
end
|
524
|
-
end
|
525
|
-
|
526
|
-
describe "#oembeds" do
|
527
|
-
before do
|
528
|
-
stub_get("/1.1/statuses/oembed.json").with(:query => {:id => "25938088801"}).to_return(:body => fixture("oembed.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
529
|
-
end
|
530
|
-
it "requests the correct resource" do
|
531
|
-
@client.oembeds(25938088801)
|
532
|
-
expect(a_get("/1.1/statuses/oembed.json").with(:query => {:id => "25938088801"})).to have_been_made
|
533
|
-
end
|
534
|
-
it "returns an array of OEmbed instances" do
|
535
|
-
oembeds = @client.oembeds(25938088801)
|
536
|
-
expect(oembeds).to be_an Array
|
537
|
-
expect(oembeds.first).to be_a Twitter::OEmbed
|
538
|
-
end
|
539
|
-
end
|
540
|
-
|
541
|
-
end
|