/spec/instagram/client/users_spec.rb
https://github.com/mizzy/instagram-ruby-gem · Ruby · 400 lines · 324 code · 76 blank · 0 comment · 14 complexity · 8d26c72fb49d56f41cc615dbc16e8f3d MD5 · raw file
- require File.expand_path('../../../spec_helper', __FILE__)
- describe Instagram::Client do
- Instagram::Configuration::VALID_FORMATS.each do |format|
- context ".new(:format => '#{format}')" do
- before do
- @client = Instagram::Client.new(:format => format, :client_id => 'CID', :client_secret => 'CS', :access_token => 'AT')
- end
- describe ".user" do
- context "with user ID passed" do
- before do
- stub_get("users/4.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("mikeyk.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user(4)
- a_get("users/4.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
- it "should return extended information of a given user" do
- user = @client.user(4)
- user.full_name.should == "Mike Krieger"
- end
- end
- context "without user ID passed" do
- before do
- stub_get("users/self.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("shayne.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user()
- a_get("users/self.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
- end
- end
- describe ".user_search" do
- before do
- stub_get("users/search.#{format}").
- with(:query => {:access_token => @client.access_token}).
- with(:query => {:q => "Shayne Sweeney"}).
- to_return(:body => fixture("user_search.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user_search("Shayne Sweeney")
- a_get("users/search.#{format}").
- with(:query => {:access_token => @client.access_token}).
- with(:query => {:q => "Shayne Sweeney"}).
- should have_been_made
- end
- it "should return an array of user search results" do
- users = @client.user_search("Shayne Sweeney")
- users.should be_a Array
- users.first.username.should == "shayne"
- end
- end
- describe ".user_follows" do
- context "with user ID passed" do
- before do
- stub_get("users/4/follows.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("follows.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user_follows(4)
- a_get("users/4/follows.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
- it "should return a list of users whom a given user follows" do
- follows = @client.user_follows(4)
- follows.should be_a Array
- follows.first.username.should == "heartsf"
- end
- end
- context "without user ID passed" do
- before do
- stub_get("users/self/follows.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("follows.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user_follows
- a_get("users/self/follows.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
- end
- end
- describe ".user_followed_by" do
- context "with user ID passed" do
- before do
- stub_get("users/4/followed-by.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("followed_by.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user_followed_by(4)
- a_get("users/4/followed-by.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
- it "should return a list of users whom a given user is followed by" do
- followed_by = @client.user_followed_by(4)
- followed_by.should be_a Array
- followed_by.first.username.should == "bojieyang"
- end
- end
- context "without user ID passed" do
- before do
- stub_get("users/self/followed-by.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("followed_by.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user_followed_by
- a_get("users/self/followed-by.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
- end
- end
- describe ".user_media_feed" do
- before do
- stub_get("users/self/feed.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("user_media_feed.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user_media_feed
- a_get("users/self/feed.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
- end
- describe ".user_liked_media" do
-
- before do
- stub_get("users/self/media/liked.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("liked_media.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user_liked_media
- a_get("users/self/media/liked.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
- end
-
- describe ".user_recent_media" do
- context "with user ID passed" do
- before do
- stub_get("users/4/media/recent.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("recent_media.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user_recent_media(4)
- a_get("users/4/media/recent.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
- it "should return a list of recent media items for the given user" do
- recent_media = @client.user_recent_media(4)
- recent_media.should be_a Array
- recent_media.first.user.username.should == "shayne"
- end
- end
- context "without user ID passed" do
- before do
- stub_get("users/self/media/recent.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("recent_media.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user_recent_media
- a_get("users/self/media/recent.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
- end
- end
- describe ".user_requested_by" do
- before do
- stub_get("users/self/requested-by.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("requested_by.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
- it "should get the correct resource" do
- @client.user_requested_by
- a_get("users/self/requested-by.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
- it "should return a list of users awaiting approval" do
- users = @client.user_requested_by
- users.should be_a Array
- users.first.username.should == "shayne"
- end
- end
-
- describe ".user_relationship" do
-
- before do
- stub_get("users/4/relationship.#{format}").
- with(:query => {:access_token => @client.access_token}).
- to_return(:body => fixture("relationship.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
-
- it "should get the correct resource" do
- @client.user_relationship(4)
- a_get("users/4/relationship.#{format}").
- with(:query => {:access_token => @client.access_token}).
- should have_been_made
- end
-
- it "should return a relationship status response" do
- status = @client.user_relationship(4)
- status.incoming_status.should == "requested_by"
- end
- end
-
- describe ".follow_user" do
-
- before do
- stub_post("users/4/relationship.#{format}").
- with(:body => {:action => "follow", :access_token => @client.access_token}).
- to_return(:body => fixture("follow_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
-
- it "should get the correct resource" do
- @client.follow_user(4)
- a_post("users/4/relationship.#{format}").
- with(:body => {:action => "follow", :access_token => @client.access_token}).
- should have_been_made
- end
-
- it "should return a relationship status response" do
- status = @client.follow_user(4)
- status.outgoing_status.should == "requested"
- end
- end
-
- describe ".unfollow_user" do
-
- before do
- stub_post("users/4/relationship.#{format}").
- with(:body => {:action => "unfollow", :access_token => @client.access_token}).
- to_return(:body => fixture("unfollow_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
-
- it "should get the correct resource" do
- @client.unfollow_user(4)
- a_post("users/4/relationship.#{format}").
- with(:body => {:action => "unfollow", :access_token => @client.access_token}).
- should have_been_made
- end
-
- it "should return a relationship status response" do
- status = @client.unfollow_user(4)
- status.outgoing_status.should == "none"
- end
- end
-
- describe ".block_user" do
-
- before do
- stub_post("users/4/relationship.#{format}").
- with(:body => {:action => "block", :access_token => @client.access_token}).
- to_return(:body => fixture("block_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
-
- it "should get the correct resource" do
- @client.block_user(4)
- a_post("users/4/relationship.#{format}").
- with(:body => {:action => "block", :access_token => @client.access_token}).
- should have_been_made
- end
-
- it "should return a relationship status response" do
- status = @client.block_user(4)
- status.outgoing_status.should == "none"
- end
- end
-
- describe ".unblock_user" do
-
- before do
- stub_post("users/4/relationship.#{format}").
- with(:body => {:action => "unblock", :access_token => @client.access_token}).
- to_return(:body => fixture("unblock_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
-
- it "should get the correct resource" do
- @client.unblock_user(4)
- a_post("users/4/relationship.#{format}").
- with(:body => {:action => "unblock", :access_token => @client.access_token}).
- should have_been_made
- end
-
- it "should return a relationship status response" do
- status = @client.unblock_user(4)
- status.outgoing_status.should == "none"
- end
- end
-
- describe ".approve_user" do
-
- before do
- stub_post("users/4/relationship.#{format}").
- with(:body => {:action => "approve", :access_token => @client.access_token}).
- to_return(:body => fixture("approve_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
-
- it "should get the correct resource" do
- @client.approve_user(4)
- a_post("users/4/relationship.#{format}").
- with(:body => {:action => "approve", :access_token => @client.access_token}).
- should have_been_made
- end
-
- it "should return a relationship status response" do
- status = @client.approve_user(4)
- status.outgoing_status.should == "follows"
- end
- end
-
- describe ".deny_user" do
-
- before do
- stub_post("users/4/relationship.#{format}").
- with(:body => {:action => "deny", :access_token => @client.access_token}).
- to_return(:body => fixture("deny_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
- end
-
- it "should get the correct resource" do
- @client.deny_user(4)
- a_post("users/4/relationship.#{format}").
- with(:body => {:action => "deny", :access_token => @client.access_token}).
- should have_been_made
- end
-
- it "should return a relationship status response" do
- status = @client.deny_user(4)
- status.outgoing_status.should == "none"
- end
- end
- end
- end
- end