extendi-instagram 2.0.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.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/.rspec +3 -0
- data/.travis.yml +6 -0
- data/.yardopts +9 -0
- data/Gemfile +3 -0
- data/LICENSE.md +30 -0
- data/PATENTS.md +23 -0
- data/README.md +260 -0
- data/Rakefile +27 -0
- data/instagram.gemspec +50 -0
- data/lib/faraday/loud_logger.rb +78 -0
- data/lib/faraday/oauth2.rb +45 -0
- data/lib/faraday/raise_http_exception.rb +73 -0
- data/lib/instagram/api.rb +31 -0
- data/lib/instagram/client/comments.rb +62 -0
- data/lib/instagram/client/embedding.rb +28 -0
- data/lib/instagram/client/geographies.rb +29 -0
- data/lib/instagram/client/likes.rb +58 -0
- data/lib/instagram/client/locations.rb +75 -0
- data/lib/instagram/client/media.rb +82 -0
- data/lib/instagram/client/subscriptions.rb +211 -0
- data/lib/instagram/client/tags.rb +59 -0
- data/lib/instagram/client/users.rb +310 -0
- data/lib/instagram/client/utils.rb +28 -0
- data/lib/instagram/client.rb +21 -0
- data/lib/instagram/configuration.rb +125 -0
- data/lib/instagram/connection.rb +31 -0
- data/lib/instagram/error.rb +34 -0
- data/lib/instagram/oauth.rb +36 -0
- data/lib/instagram/request.rb +83 -0
- data/lib/instagram/response.rb +22 -0
- data/lib/instagram/version.rb +3 -0
- data/lib/instagram.rb +27 -0
- data/spec/faraday/response_spec.rb +101 -0
- data/spec/fixtures/access_token.json +9 -0
- data/spec/fixtures/approve_user.json +8 -0
- data/spec/fixtures/block_user.json +8 -0
- data/spec/fixtures/deny_user.json +8 -0
- data/spec/fixtures/follow_user.json +8 -0
- data/spec/fixtures/followed_by.json +1 -0
- data/spec/fixtures/follows.json +1 -0
- data/spec/fixtures/geography_recent_media.json +1 -0
- data/spec/fixtures/liked_media.json +1 -0
- data/spec/fixtures/location.json +1 -0
- data/spec/fixtures/location_recent_media.json +1 -0
- data/spec/fixtures/location_search.json +1 -0
- data/spec/fixtures/location_search_facebook.json +1 -0
- data/spec/fixtures/media.json +1 -0
- data/spec/fixtures/media_comment.json +1 -0
- data/spec/fixtures/media_comment_deleted.json +1 -0
- data/spec/fixtures/media_comments.json +1 -0
- data/spec/fixtures/media_liked.json +1 -0
- data/spec/fixtures/media_likes.json +1 -0
- data/spec/fixtures/media_popular.json +1 -0
- data/spec/fixtures/media_search.json +1 -0
- data/spec/fixtures/media_shortcode.json +1 -0
- data/spec/fixtures/media_unliked.json +1 -0
- data/spec/fixtures/mikeyk.json +1 -0
- data/spec/fixtures/oembed.json +14 -0
- data/spec/fixtures/recent_media.json +1 -0
- data/spec/fixtures/relationship.json +9 -0
- data/spec/fixtures/requested_by.json +12 -0
- data/spec/fixtures/shayne.json +1 -0
- data/spec/fixtures/subscription.json +12 -0
- data/spec/fixtures/subscription_deleted.json +1 -0
- data/spec/fixtures/subscription_payload.json +14 -0
- data/spec/fixtures/subscriptions.json +22 -0
- data/spec/fixtures/tag.json +1 -0
- data/spec/fixtures/tag_recent_media.json +1 -0
- data/spec/fixtures/tag_search.json +1 -0
- data/spec/fixtures/unblock_user.json +8 -0
- data/spec/fixtures/unfollow_user.json +8 -0
- data/spec/fixtures/user_media_feed.json +1 -0
- data/spec/fixtures/user_search.json +1 -0
- data/spec/instagram/api_spec.rb +285 -0
- data/spec/instagram/client/comments_spec.rb +71 -0
- data/spec/instagram/client/embedding_spec.rb +36 -0
- data/spec/instagram/client/geography_spec.rb +37 -0
- data/spec/instagram/client/likes_spec.rb +66 -0
- data/spec/instagram/client/locations_spec.rb +127 -0
- data/spec/instagram/client/media_spec.rb +99 -0
- data/spec/instagram/client/subscriptions_spec.rb +174 -0
- data/spec/instagram/client/tags_spec.rb +79 -0
- data/spec/instagram/client/users_spec.rb +432 -0
- data/spec/instagram/client/utils_spec.rb +32 -0
- data/spec/instagram/client_spec.rb +23 -0
- data/spec/instagram/request_spec.rb +56 -0
- data/spec/instagram_spec.rb +109 -0
- data/spec/spec_helper.rb +71 -0
- metadata +322 -0
@@ -0,0 +1,79 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Instagram::Client do
|
4
|
+
Instagram::Configuration::VALID_FORMATS.each do |format|
|
5
|
+
context ".new(:format => '#{format}')" do
|
6
|
+
before do
|
7
|
+
@client = Instagram::Client.new(:format => format, :client_id => 'CID', :client_secret => 'CS', :access_token => 'AT')
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".tag" do
|
11
|
+
|
12
|
+
before do
|
13
|
+
stub_get("tags/cat.#{format}").
|
14
|
+
with(:query => {:access_token => @client.access_token}).
|
15
|
+
to_return(:body => fixture("tag.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should get the correct resource" do
|
19
|
+
@client.tag('cat')
|
20
|
+
expect(a_get("tags/cat.#{format}").
|
21
|
+
with(:query => {:access_token => @client.access_token})).
|
22
|
+
to have_been_made
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should return extended information of a given media item" do
|
26
|
+
tag = @client.tag('cat')
|
27
|
+
expect(tag.name).to eq('cat')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe ".tag_recent_media" do
|
32
|
+
|
33
|
+
before do
|
34
|
+
stub_get("tags/cat/media/recent.#{format}").
|
35
|
+
with(:query => {:access_token => @client.access_token}).
|
36
|
+
to_return(:body => fixture("tag_recent_media.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should get the correct resource" do
|
40
|
+
@client.tag_recent_media('cat')
|
41
|
+
expect(a_get("tags/cat/media/recent.#{format}").
|
42
|
+
with(:query => {:access_token => @client.access_token})).
|
43
|
+
to have_been_made
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should return a list of media taken at a given location" do
|
47
|
+
media = @client.tag_recent_media('cat')
|
48
|
+
expect(media).to be_a Array
|
49
|
+
expect(media.first.user.username).to eq("amandavan")
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
describe ".tag_search" do
|
55
|
+
|
56
|
+
before do
|
57
|
+
stub_get("tags/search.#{format}").
|
58
|
+
with(:query => {:access_token => @client.access_token}).
|
59
|
+
with(:query => {:q => 'cat'}).
|
60
|
+
to_return(:body => fixture("tag_search.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should get the correct resource" do
|
64
|
+
@client.tag_search('cat')
|
65
|
+
expect(a_get("tags/search.#{format}").
|
66
|
+
with(:query => {:access_token => @client.access_token}).
|
67
|
+
with(:query => {:q => 'cat'})).
|
68
|
+
to have_been_made
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should return an array of user search results" do
|
72
|
+
tags = @client.tag_search('cat')
|
73
|
+
expect(tags).to be_a Array
|
74
|
+
expect(tags.first.name).to eq("cats")
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,432 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Instagram::Client do
|
4
|
+
Instagram::Configuration::VALID_FORMATS.each do |format|
|
5
|
+
context ".new(:format => '#{format}')" do
|
6
|
+
before do
|
7
|
+
@client = Instagram::Client.new(:format => format, :client_id => 'CID', :client_secret => 'CS', :access_token => 'AT')
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".user" do
|
11
|
+
|
12
|
+
context "with user ID passed" do
|
13
|
+
|
14
|
+
before do
|
15
|
+
stub_get("users/4.#{format}").
|
16
|
+
with(:query => {:access_token => @client.access_token}).
|
17
|
+
to_return(:body => fixture("mikeyk.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should get the correct resource" do
|
21
|
+
@client.user(4)
|
22
|
+
expect(a_get("users/4.#{format}").
|
23
|
+
with(:query => {:access_token => @client.access_token})).
|
24
|
+
to have_been_made
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should return extended information of a given user" do
|
28
|
+
user = @client.user(4)
|
29
|
+
expect(user.full_name).to eq("Mike Krieger")
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
context "without user ID passed" do
|
35
|
+
|
36
|
+
before do
|
37
|
+
stub_get("users/self.#{format}").
|
38
|
+
with(:query => {:access_token => @client.access_token}).
|
39
|
+
to_return(:body => fixture("shayne.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should get the correct resource" do
|
43
|
+
@client.user()
|
44
|
+
expect(a_get("users/self.#{format}").
|
45
|
+
with(:query => {:access_token => @client.access_token})).
|
46
|
+
to have_been_made
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe ".user_search" do
|
52
|
+
|
53
|
+
before do
|
54
|
+
stub_get("users/search.#{format}").
|
55
|
+
with(:query => {:access_token => @client.access_token}).
|
56
|
+
with(:query => {:q => "Shayne Sweeney"}).
|
57
|
+
to_return(:body => fixture("user_search.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should get the correct resource" do
|
61
|
+
@client.user_search("Shayne Sweeney")
|
62
|
+
expect(a_get("users/search.#{format}").
|
63
|
+
with(:query => {:access_token => @client.access_token}).
|
64
|
+
with(:query => {:q => "Shayne Sweeney"})).
|
65
|
+
to have_been_made
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should return an array of user search results" do
|
69
|
+
users = @client.user_search("Shayne Sweeney")
|
70
|
+
expect(users).to be_a Array
|
71
|
+
expect(users.first.username).to eq("shayne")
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe ".user_follows" do
|
76
|
+
|
77
|
+
context "with user ID passed" do
|
78
|
+
|
79
|
+
before do
|
80
|
+
stub_get("users/4/follows.#{format}").
|
81
|
+
with(:query => {:access_token => @client.access_token}).
|
82
|
+
to_return(:body => fixture("follows.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should get the correct resource" do
|
86
|
+
@client.user_follows(4)
|
87
|
+
expect(a_get("users/4/follows.#{format}").
|
88
|
+
with(:query => {:access_token => @client.access_token})).
|
89
|
+
to have_been_made
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should return a list of users whom a given user follows" do
|
93
|
+
follows = @client.user_follows(4)
|
94
|
+
expect(follows).to be_a Array
|
95
|
+
expect(follows.first.username).to eq("heartsf")
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
context "without user ID passed" do
|
100
|
+
|
101
|
+
before do
|
102
|
+
stub_get("users/self/follows.#{format}").
|
103
|
+
with(:query => {:access_token => @client.access_token}).
|
104
|
+
to_return(:body => fixture("follows.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should get the correct resource" do
|
108
|
+
@client.user_follows
|
109
|
+
expect(a_get("users/self/follows.#{format}").
|
110
|
+
with(:query => {:access_token => @client.access_token})).
|
111
|
+
to have_been_made
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe ".user_followed_by" do
|
117
|
+
|
118
|
+
context "with user ID passed" do
|
119
|
+
|
120
|
+
before do
|
121
|
+
stub_get("users/4/followed-by.#{format}").
|
122
|
+
with(:query => {:access_token => @client.access_token}).
|
123
|
+
to_return(:body => fixture("followed_by.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should get the correct resource" do
|
127
|
+
@client.user_followed_by(4)
|
128
|
+
expect(a_get("users/4/followed-by.#{format}").
|
129
|
+
with(:query => {:access_token => @client.access_token})).
|
130
|
+
to have_been_made
|
131
|
+
end
|
132
|
+
|
133
|
+
it "should return a list of users whom a given user is followed by" do
|
134
|
+
followed_by = @client.user_followed_by(4)
|
135
|
+
expect(followed_by).to be_a Array
|
136
|
+
expect(followed_by.first.username).to eq("bojieyang")
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
context "without user ID passed" do
|
141
|
+
|
142
|
+
before do
|
143
|
+
stub_get("users/self/followed-by.#{format}").
|
144
|
+
with(:query => {:access_token => @client.access_token}).
|
145
|
+
to_return(:body => fixture("followed_by.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
146
|
+
end
|
147
|
+
|
148
|
+
it "should get the correct resource" do
|
149
|
+
@client.user_followed_by
|
150
|
+
expect(a_get("users/self/followed-by.#{format}").
|
151
|
+
with(:query => {:access_token => @client.access_token})).
|
152
|
+
to have_been_made
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
describe ".user_media_feed" do
|
158
|
+
|
159
|
+
before do
|
160
|
+
stub_get("users/self/feed.#{format}").
|
161
|
+
with(:query => {:access_token => @client.access_token}).
|
162
|
+
to_return(:body => fixture("user_media_feed.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
163
|
+
end
|
164
|
+
|
165
|
+
it "should get the correct resource" do
|
166
|
+
@client.user_media_feed
|
167
|
+
expect(a_get("users/self/feed.#{format}").
|
168
|
+
with(:query => {:access_token => @client.access_token})).
|
169
|
+
to have_been_made
|
170
|
+
end
|
171
|
+
|
172
|
+
context Instagram::Response do
|
173
|
+
let(:user_media_feed_response){ @client.user_media_feed }
|
174
|
+
subject{ user_media_feed_response }
|
175
|
+
|
176
|
+
it{ is_expected.to be_an_instance_of(Hashie::Array) }
|
177
|
+
it{ is_expected.to be_a_kind_of(Instagram::Response) }
|
178
|
+
it{ is_expected.to respond_to(:pagination) }
|
179
|
+
it{ is_expected.to respond_to(:meta) }
|
180
|
+
|
181
|
+
context '.pagination' do
|
182
|
+
subject{ user_media_feed_response.pagination }
|
183
|
+
|
184
|
+
it{ is_expected.to be_an_instance_of(Hashie::Mash) }
|
185
|
+
|
186
|
+
describe '#next_max_id' do
|
187
|
+
subject { super().next_max_id }
|
188
|
+
it { is_expected.to eq('22063131') }
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
context '.meta' do
|
193
|
+
subject{ user_media_feed_response.meta }
|
194
|
+
|
195
|
+
it{ is_expected.to be_an_instance_of(Hashie::Mash) }
|
196
|
+
|
197
|
+
describe '#code' do
|
198
|
+
subject { super().code }
|
199
|
+
it { is_expected.to eq(200) }
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
describe ".user_liked_media" do
|
206
|
+
|
207
|
+
before do
|
208
|
+
stub_get("users/self/media/liked.#{format}").
|
209
|
+
with(:query => {:access_token => @client.access_token}).
|
210
|
+
to_return(:body => fixture("liked_media.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
211
|
+
end
|
212
|
+
|
213
|
+
it "should get the correct resource" do
|
214
|
+
@client.user_liked_media
|
215
|
+
expect(a_get("users/self/media/liked.#{format}").
|
216
|
+
with(:query => {:access_token => @client.access_token})).
|
217
|
+
to have_been_made
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
describe ".user_recent_media" do
|
222
|
+
|
223
|
+
context "with user ID passed" do
|
224
|
+
|
225
|
+
before do
|
226
|
+
stub_get("users/4/media/recent.#{format}").
|
227
|
+
with(:query => {:access_token => @client.access_token}).
|
228
|
+
to_return(:body => fixture("recent_media.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
229
|
+
end
|
230
|
+
|
231
|
+
it "should get the correct resource" do
|
232
|
+
@client.user_recent_media(4)
|
233
|
+
expect(a_get("users/4/media/recent.#{format}").
|
234
|
+
with(:query => {:access_token => @client.access_token})).
|
235
|
+
to have_been_made
|
236
|
+
end
|
237
|
+
|
238
|
+
it "should return a list of recent media items for the given user" do
|
239
|
+
recent_media = @client.user_recent_media(4)
|
240
|
+
expect(recent_media).to be_a Array
|
241
|
+
expect(recent_media.first.user.username).to eq("shayne")
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
context "without user ID passed" do
|
246
|
+
|
247
|
+
before do
|
248
|
+
stub_get("users/self/media/recent.#{format}").
|
249
|
+
with(:query => {:access_token => @client.access_token}).
|
250
|
+
to_return(:body => fixture("recent_media.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
251
|
+
end
|
252
|
+
|
253
|
+
it "should get the correct resource" do
|
254
|
+
@client.user_recent_media
|
255
|
+
expect(a_get("users/self/media/recent.#{format}").
|
256
|
+
with(:query => {:access_token => @client.access_token})).
|
257
|
+
to have_been_made
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
describe ".user_requested_by" do
|
263
|
+
|
264
|
+
before do
|
265
|
+
stub_get("users/self/requested-by.#{format}").
|
266
|
+
with(:query => {:access_token => @client.access_token}).
|
267
|
+
to_return(:body => fixture("requested_by.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
268
|
+
end
|
269
|
+
|
270
|
+
it "should get the correct resource" do
|
271
|
+
@client.user_requested_by
|
272
|
+
expect(a_get("users/self/requested-by.#{format}").
|
273
|
+
with(:query => {:access_token => @client.access_token})).
|
274
|
+
to have_been_made
|
275
|
+
end
|
276
|
+
|
277
|
+
it "should return a list of users awaiting approval" do
|
278
|
+
users = @client.user_requested_by
|
279
|
+
expect(users).to be_a Array
|
280
|
+
expect(users.first.username).to eq("shayne")
|
281
|
+
end
|
282
|
+
end
|
283
|
+
|
284
|
+
describe ".user_relationship" do
|
285
|
+
|
286
|
+
before do
|
287
|
+
stub_get("users/4/relationship.#{format}").
|
288
|
+
with(:query => {:access_token => @client.access_token}).
|
289
|
+
to_return(:body => fixture("relationship.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
290
|
+
end
|
291
|
+
|
292
|
+
it "should get the correct resource" do
|
293
|
+
@client.user_relationship(4)
|
294
|
+
expect(a_get("users/4/relationship.#{format}").
|
295
|
+
with(:query => {:access_token => @client.access_token})).
|
296
|
+
to have_been_made
|
297
|
+
end
|
298
|
+
|
299
|
+
it "should return a relationship status response" do
|
300
|
+
status = @client.user_relationship(4)
|
301
|
+
expect(status.incoming_status).to eq("requested_by")
|
302
|
+
end
|
303
|
+
end
|
304
|
+
|
305
|
+
describe ".follow_user" do
|
306
|
+
|
307
|
+
before do
|
308
|
+
stub_post("users/4/relationship.#{format}").
|
309
|
+
with(:body => {:action => "follow", :access_token => @client.access_token}).
|
310
|
+
to_return(:body => fixture("follow_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
311
|
+
end
|
312
|
+
|
313
|
+
it "should get the correct resource" do
|
314
|
+
@client.follow_user(4)
|
315
|
+
expect(a_post("users/4/relationship.#{format}").
|
316
|
+
with(:body => {:action => "follow", :access_token => @client.access_token})).
|
317
|
+
to have_been_made
|
318
|
+
end
|
319
|
+
|
320
|
+
it "should return a relationship status response" do
|
321
|
+
status = @client.follow_user(4)
|
322
|
+
expect(status.outgoing_status).to eq("requested")
|
323
|
+
end
|
324
|
+
end
|
325
|
+
|
326
|
+
describe ".unfollow_user" do
|
327
|
+
|
328
|
+
before do
|
329
|
+
stub_post("users/4/relationship.#{format}").
|
330
|
+
with(:body => {:action => "unfollow", :access_token => @client.access_token}).
|
331
|
+
to_return(:body => fixture("unfollow_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
332
|
+
end
|
333
|
+
|
334
|
+
it "should get the correct resource" do
|
335
|
+
@client.unfollow_user(4)
|
336
|
+
expect(a_post("users/4/relationship.#{format}").
|
337
|
+
with(:body => {:action => "unfollow", :access_token => @client.access_token})).
|
338
|
+
to have_been_made
|
339
|
+
end
|
340
|
+
|
341
|
+
it "should return a relationship status response" do
|
342
|
+
status = @client.unfollow_user(4)
|
343
|
+
expect(status.outgoing_status).to eq("none")
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
347
|
+
describe ".block_user" do
|
348
|
+
|
349
|
+
before do
|
350
|
+
stub_post("users/4/relationship.#{format}").
|
351
|
+
with(:body => {:action => "block", :access_token => @client.access_token}).
|
352
|
+
to_return(:body => fixture("block_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
353
|
+
end
|
354
|
+
|
355
|
+
it "should get the correct resource" do
|
356
|
+
@client.block_user(4)
|
357
|
+
expect(a_post("users/4/relationship.#{format}").
|
358
|
+
with(:body => {:action => "block", :access_token => @client.access_token})).
|
359
|
+
to have_been_made
|
360
|
+
end
|
361
|
+
|
362
|
+
it "should return a relationship status response" do
|
363
|
+
status = @client.block_user(4)
|
364
|
+
expect(status.outgoing_status).to eq("none")
|
365
|
+
end
|
366
|
+
end
|
367
|
+
|
368
|
+
describe ".unblock_user" do
|
369
|
+
|
370
|
+
before do
|
371
|
+
stub_post("users/4/relationship.#{format}").
|
372
|
+
with(:body => {:action => "unblock", :access_token => @client.access_token}).
|
373
|
+
to_return(:body => fixture("unblock_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
374
|
+
end
|
375
|
+
|
376
|
+
it "should get the correct resource" do
|
377
|
+
@client.unblock_user(4)
|
378
|
+
expect(a_post("users/4/relationship.#{format}").
|
379
|
+
with(:body => {:action => "unblock", :access_token => @client.access_token})).
|
380
|
+
to have_been_made
|
381
|
+
end
|
382
|
+
|
383
|
+
it "should return a relationship status response" do
|
384
|
+
status = @client.unblock_user(4)
|
385
|
+
expect(status.outgoing_status).to eq("none")
|
386
|
+
end
|
387
|
+
end
|
388
|
+
|
389
|
+
describe ".approve_user" do
|
390
|
+
|
391
|
+
before do
|
392
|
+
stub_post("users/4/relationship.#{format}").
|
393
|
+
with(:body => {:action => "approve", :access_token => @client.access_token}).
|
394
|
+
to_return(:body => fixture("approve_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
395
|
+
end
|
396
|
+
|
397
|
+
it "should get the correct resource" do
|
398
|
+
@client.approve_user(4)
|
399
|
+
expect(a_post("users/4/relationship.#{format}").
|
400
|
+
with(:body => {:action => "approve", :access_token => @client.access_token})).
|
401
|
+
to have_been_made
|
402
|
+
end
|
403
|
+
|
404
|
+
it "should return a relationship status response" do
|
405
|
+
status = @client.approve_user(4)
|
406
|
+
expect(status.outgoing_status).to eq("follows")
|
407
|
+
end
|
408
|
+
end
|
409
|
+
|
410
|
+
describe ".deny_user" do
|
411
|
+
|
412
|
+
before do
|
413
|
+
stub_post("users/4/relationship.#{format}").
|
414
|
+
with(:body => {:action => "deny", :access_token => @client.access_token}).
|
415
|
+
to_return(:body => fixture("deny_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
416
|
+
end
|
417
|
+
|
418
|
+
it "should get the correct resource" do
|
419
|
+
@client.deny_user(4)
|
420
|
+
expect(a_post("users/4/relationship.#{format}").
|
421
|
+
with(:body => {:action => "deny", :access_token => @client.access_token})).
|
422
|
+
to have_been_made
|
423
|
+
end
|
424
|
+
|
425
|
+
it "should return a relationship status response" do
|
426
|
+
status = @client.deny_user(4)
|
427
|
+
expect(status.outgoing_status).to eq("none")
|
428
|
+
end
|
429
|
+
end
|
430
|
+
end
|
431
|
+
end
|
432
|
+
end
|