palidanx-fb_graph 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +308 -0
- data/Rakefile +49 -0
- data/VERSION +1 -0
- data/assets/fb_graph.ai +1726 -6
- data/assets/fb_graph.png +0 -0
- data/fb_graph.gemspec +327 -0
- data/lib/fb_graph.rb +75 -0
- data/lib/fb_graph/album.rb +133 -0
- data/lib/fb_graph/application.rb +57 -0
- data/lib/fb_graph/auth.rb +52 -0
- data/lib/fb_graph/auth/cookie.rb +43 -0
- data/lib/fb_graph/checkin.rb +44 -0
- data/lib/fb_graph/collection.rb +44 -0
- data/lib/fb_graph/comment.rb +20 -0
- data/lib/fb_graph/comparison.rb +9 -0
- data/lib/fb_graph/connection.rb +30 -0
- data/lib/fb_graph/connections.rb +3 -0
- data/lib/fb_graph/connections/accounts.rb +58 -0
- data/lib/fb_graph/connections/activities.rb +14 -0
- data/lib/fb_graph/connections/albums.rb +96 -0
- data/lib/fb_graph/connections/attending.rb +18 -0
- data/lib/fb_graph/connections/books.rb +14 -0
- data/lib/fb_graph/connections/checkins.rb +22 -0
- data/lib/fb_graph/connections/comments.rb +39 -0
- data/lib/fb_graph/connections/declined.rb +18 -0
- data/lib/fb_graph/connections/events.rb +21 -0
- data/lib/fb_graph/connections/feed.rb +90 -0
- data/lib/fb_graph/connections/friends.rb +14 -0
- data/lib/fb_graph/connections/groups.rb +14 -0
- data/lib/fb_graph/connections/home.rb +14 -0
- data/lib/fb_graph/connections/insights.rb +13 -0
- data/lib/fb_graph/connections/interests.rb +14 -0
- data/lib/fb_graph/connections/invited.rb +14 -0
- data/lib/fb_graph/connections/likes.rb +16 -0
- data/lib/fb_graph/connections/links.rb +21 -0
- data/lib/fb_graph/connections/maybe.rb +18 -0
- data/lib/fb_graph/connections/members.rb +14 -0
- data/lib/fb_graph/connections/movies.rb +14 -0
- data/lib/fb_graph/connections/music.rb +14 -0
- data/lib/fb_graph/connections/noreply.rb +14 -0
- data/lib/fb_graph/connections/notes.rb +21 -0
- data/lib/fb_graph/connections/photos.rb +21 -0
- data/lib/fb_graph/connections/picture.rb +14 -0
- data/lib/fb_graph/connections/posts.rb +14 -0
- data/lib/fb_graph/connections/statuses.rb +14 -0
- data/lib/fb_graph/connections/subscriptions.rb +53 -0
- data/lib/fb_graph/connections/tagged.rb +14 -0
- data/lib/fb_graph/connections/television.rb +14 -0
- data/lib/fb_graph/connections/videos.rb +14 -0
- data/lib/fb_graph/education.rb +25 -0
- data/lib/fb_graph/event.rb +47 -0
- data/lib/fb_graph/group.rb +27 -0
- data/lib/fb_graph/insight.rb +14 -0
- data/lib/fb_graph/link.rb +28 -0
- data/lib/fb_graph/node.rb +121 -0
- data/lib/fb_graph/note.rb +28 -0
- data/lib/fb_graph/page.rb +41 -0
- data/lib/fb_graph/photo.rb +41 -0
- data/lib/fb_graph/post.rb +50 -0
- data/lib/fb_graph/searchable.rb +25 -0
- data/lib/fb_graph/searchable/result.rb +31 -0
- data/lib/fb_graph/status.rb +23 -0
- data/lib/fb_graph/subscription.rb +14 -0
- data/lib/fb_graph/tag.rb +16 -0
- data/lib/fb_graph/user.rb +89 -0
- data/lib/fb_graph/venue.rb +17 -0
- data/lib/fb_graph/video.rb +28 -0
- data/lib/fb_graph/work.rb +35 -0
- data/spec/fake_json/albums/photos/matake_private.json +97 -0
- data/spec/fake_json/albums/photos/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/applications/subscriptions/fb_graph_private.json +12 -0
- data/spec/fake_json/checkins/search_private.json +54 -0
- data/spec/fake_json/checkins/search_public.json +6 -0
- data/spec/fake_json/events/attending/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/events/attending/smartday_private.json +44 -0
- data/spec/fake_json/events/declined/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/events/declined/smartday_private.json +720 -0
- data/spec/fake_json/events/invited/smartday_private.json +7092 -0
- data/spec/fake_json/events/maybe/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/events/maybe/smartday_private.json +956 -0
- data/spec/fake_json/events/noreply/smartday_private.json +896 -0
- data/spec/fake_json/groups/members/emacs_private.json +1996 -0
- data/spec/fake_json/pages/checkins/gowalla_private.json +113 -0
- data/spec/fake_json/pages/checkins/gowalla_public.json +6 -0
- data/spec/fake_json/pages/notes/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/pages/platform_private.json +13 -0
- data/spec/fake_json/pages/platform_public.json +13 -0
- data/spec/fake_json/pages/statuses/platform_private.json +258 -0
- data/spec/fake_json/pages/statuses/platform_public.json +6 -0
- data/spec/fake_json/posts/comments/post_with_invalid_access_token.json +1 -0
- data/spec/fake_json/posts/comments/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/posts/comments/post_without_access_token.json +1 -0
- data/spec/fake_json/posts/likes/post_with_invalid_access_token.json +1 -0
- data/spec/fake_json/posts/likes/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/posts/likes/post_without_access_token.json +1 -0
- data/spec/fake_json/posts/platform_private.json +97 -0
- data/spec/fake_json/posts/platform_public.json +52 -0
- data/spec/fake_json/users/accounts/matake_private.json +14 -0
- data/spec/fake_json/users/accounts/matake_private_with_manage_pages_permission.json +16 -0
- data/spec/fake_json/users/accounts/matake_public.json +6 -0
- data/spec/fake_json/users/activities/arjun_private.json +24 -0
- data/spec/fake_json/users/activities/arjun_public.json +6 -0
- data/spec/fake_json/users/albums/matake_private.json +36 -0
- data/spec/fake_json/users/albums/matake_public.json +6 -0
- data/spec/fake_json/users/albums/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/users/arjun_private.json +109 -0
- data/spec/fake_json/users/arjun_public.json +12 -0
- data/spec/fake_json/users/books/matake_private.json +9 -0
- data/spec/fake_json/users/books/matake_public.json +6 -0
- data/spec/fake_json/users/checkins/mattt_private.json +389 -0
- data/spec/fake_json/users/checkins/mattt_public.json +6 -0
- data/spec/fake_json/users/events/matake_private.json +71 -0
- data/spec/fake_json/users/events/matake_public.json +6 -0
- data/spec/fake_json/users/events/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/users/feed/arjun_private.json +520 -0
- data/spec/fake_json/users/feed/arjun_public.json +520 -0
- data/spec/fake_json/users/feed/post_with_invalid_access_token.json +1 -0
- data/spec/fake_json/users/feed/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/users/feed/post_without_access_token.json +1 -0
- data/spec/fake_json/users/friends/arjun_private.json +6 -0
- data/spec/fake_json/users/friends/arjun_public.json +6 -0
- data/spec/fake_json/users/friends/me_private.json +524 -0
- data/spec/fake_json/users/friends/me_public.json +6 -0
- data/spec/fake_json/users/groups/matake_private.json +48 -0
- data/spec/fake_json/users/groups/matake_public.json +6 -0
- data/spec/fake_json/users/home/arjun_private.json +6 -0
- data/spec/fake_json/users/home/arjun_public.json +6 -0
- data/spec/fake_json/users/home/me_private.json +460 -0
- data/spec/fake_json/users/home/me_private_next.json +382 -0
- data/spec/fake_json/users/home/me_private_previous.json +36 -0
- data/spec/fake_json/users/home/me_public.json +6 -0
- data/spec/fake_json/users/interests/matake_private.json +14 -0
- data/spec/fake_json/users/likes/arjun_private.json +1394 -0
- data/spec/fake_json/users/likes/arjun_public.json +6 -0
- data/spec/fake_json/users/links/matake_private.json +221 -0
- data/spec/fake_json/users/links/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/users/me_private.json +128 -0
- data/spec/fake_json/users/me_public.json +6 -0
- data/spec/fake_json/users/movies/matake_private.json +9 -0
- data/spec/fake_json/users/music/matake_private.json +34 -0
- data/spec/fake_json/users/notes/matake_private.json +308 -0
- data/spec/fake_json/users/posts/arjun_private.json +386 -0
- data/spec/fake_json/users/posts/arjun_public.json +386 -0
- data/spec/fake_json/users/statuses/arjun_private.json +233 -0
- data/spec/fake_json/users/statuses/arjun_public.json +6 -0
- data/spec/fake_json/users/tagged/arjun_private.json +308 -0
- data/spec/fake_json/users/tagged/arjun_public.json +308 -0
- data/spec/fake_json/users/television/matake_private.json +9 -0
- data/spec/fake_json/users/videos/kirk_private.json +41 -0
- data/spec/fb_graph/album_spec.rb +61 -0
- data/spec/fb_graph/application_spec.rb +23 -0
- data/spec/fb_graph/auth_spec.rb +35 -0
- data/spec/fb_graph/checkin_spec.rb +29 -0
- data/spec/fb_graph/collection_spec.rb +45 -0
- data/spec/fb_graph/comment_spec.rb +31 -0
- data/spec/fb_graph/connection_spec.rb +38 -0
- data/spec/fb_graph/connections/accounts_spec.rb +47 -0
- data/spec/fb_graph/connections/activities_spec.rb +34 -0
- data/spec/fb_graph/connections/albums_spec.rb +60 -0
- data/spec/fb_graph/connections/attending_spec.rb +24 -0
- data/spec/fb_graph/connections/books_spec.rb +33 -0
- data/spec/fb_graph/connections/checkins_spec.rb +109 -0
- data/spec/fb_graph/connections/comments_spec.rb +85 -0
- data/spec/fb_graph/connections/declined_spec.rb +24 -0
- data/spec/fb_graph/connections/events_spec.rb +53 -0
- data/spec/fb_graph/connections/feed_spec.rb +102 -0
- data/spec/fb_graph/connections/friends_spec.rb +50 -0
- data/spec/fb_graph/connections/groups_spec.rb +32 -0
- data/spec/fb_graph/connections/home_spec.rb +58 -0
- data/spec/fb_graph/connections/interests_spec.rb +14 -0
- data/spec/fb_graph/connections/invited_spec.rb +14 -0
- data/spec/fb_graph/connections/likes_spec.rb +33 -0
- data/spec/fb_graph/connections/links_spec.rb +33 -0
- data/spec/fb_graph/connections/maybe_spec.rb +24 -0
- data/spec/fb_graph/connections/members_spec.rb +14 -0
- data/spec/fb_graph/connections/movies_spec.rb +14 -0
- data/spec/fb_graph/connections/music_spec.rb +14 -0
- data/spec/fb_graph/connections/noreply_spec.rb +14 -0
- data/spec/fb_graph/connections/notes_spec.rb +32 -0
- data/spec/fb_graph/connections/photos_spec.rb +30 -0
- data/spec/fb_graph/connections/picture_spec.rb +29 -0
- data/spec/fb_graph/connections/posts_spec.rb +35 -0
- data/spec/fb_graph/connections/statuses_spec.rb +74 -0
- data/spec/fb_graph/connections/subscriptions_spec.rb +18 -0
- data/spec/fb_graph/connections/tagged_spec.rb +42 -0
- data/spec/fb_graph/connections/television_spec.rb +14 -0
- data/spec/fb_graph/connections/videos_spec.rb +14 -0
- data/spec/fb_graph/education_spec.rb +61 -0
- data/spec/fb_graph/event_spec.rb +50 -0
- data/spec/fb_graph/group_spec.rb +46 -0
- data/spec/fb_graph/insight_spec.rb +17 -0
- data/spec/fb_graph/link_spec.rb +43 -0
- data/spec/fb_graph/node_spec.rb +13 -0
- data/spec/fb_graph/note_spec.rb +37 -0
- data/spec/fb_graph/page_spec.rb +56 -0
- data/spec/fb_graph/photo_spec.rb +60 -0
- data/spec/fb_graph/post_spec.rb +71 -0
- data/spec/fb_graph/status_spec.rb +31 -0
- data/spec/fb_graph/subscription_spec.rb +5 -0
- data/spec/fb_graph/tag_spec.rb +20 -0
- data/spec/fb_graph/user_spec.rb +139 -0
- data/spec/fb_graph/venue_spec.rb +23 -0
- data/spec/fb_graph/video_spec.rb +37 -0
- data/spec/fb_graph/work_spec.rb +67 -0
- data/spec/helpers/fake_json_helper.rb +11 -0
- data/spec/spec.opts +3 -0
- data/spec/spec_helper.rb +18 -0
- metadata +414 -0
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Checkin, '.new' do
|
4
|
+
# TODO
|
5
|
+
end
|
6
|
+
|
7
|
+
describe FbGraph::Checkin, '.search' do
|
8
|
+
before(:all) do
|
9
|
+
fake_json(:get, 'search?type=checkin', 'checkins/search_public')
|
10
|
+
fake_json(:get, 'search?type=checkin&access_token=access_token', 'checkins/search_private')
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'when no access_token given' do
|
14
|
+
it 'should raise FbGraph::Unauthorized' do
|
15
|
+
lambda do
|
16
|
+
FbGraph::Checkin.search
|
17
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'when access_token is given' do
|
22
|
+
it 'should return checkins as FbGraph::Checkin' do
|
23
|
+
checkins = FbGraph::Checkin.search(:access_token => 'access_token')
|
24
|
+
checkins.each do |checkin|
|
25
|
+
checkin.should be_instance_of(FbGraph::Checkin)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Collection, '.new' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'platform/statuses?access_token=access_token', 'pages/statuses/platform_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return an array with pagination info' do
|
9
|
+
collection = FbGraph::Page.new('platform', :access_token => 'access_token').statuses.collection
|
10
|
+
collection.should be_kind_of(Array)
|
11
|
+
collection.previous.should be_kind_of(Hash)
|
12
|
+
collection.next.should be_kind_of(Hash)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should allow blank data' do
|
16
|
+
patterns = [
|
17
|
+
FbGraph::Collection.new,
|
18
|
+
FbGraph::Collection.new({}),
|
19
|
+
FbGraph::Collection.new({:count => 5}),
|
20
|
+
FbGraph::Collection.new(nil)
|
21
|
+
]
|
22
|
+
patterns.each do |collection|
|
23
|
+
collection.should be_kind_of(Array)
|
24
|
+
collection.previous.should be_kind_of(Hash)
|
25
|
+
collection.next.should be_kind_of(Hash)
|
26
|
+
collection.should be_blank
|
27
|
+
collection.previous.should be_blank
|
28
|
+
collection.next.should be_blank
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should fetch count as total_count' do
|
33
|
+
collection = FbGraph::Collection.new({:count => 5})
|
34
|
+
collection.total_count.should == 5
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should accept Array' do
|
38
|
+
collection = FbGraph::Collection.new([1, 2, 3])
|
39
|
+
collection.total_count.should == 3
|
40
|
+
collection.should == [1, 2, 3]
|
41
|
+
collection.previous.should be_blank
|
42
|
+
collection.next.should be_blank
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Comment, '.new' do
|
4
|
+
|
5
|
+
it 'should setup all supported attributes' do
|
6
|
+
attributes = {
|
7
|
+
:id => '12345',
|
8
|
+
:from => {
|
9
|
+
:id => '23456',
|
10
|
+
:name => 'nov matake'
|
11
|
+
},
|
12
|
+
:message => 'hello',
|
13
|
+
:created_time => '2010-01-02T15:37:40+0000'
|
14
|
+
}
|
15
|
+
comment = FbGraph::Comment.new(attributes.delete(:id), attributes)
|
16
|
+
comment.identifier.should == '12345'
|
17
|
+
comment.from.should == FbGraph::User.new('23456', :name => 'nov matake')
|
18
|
+
comment.message.should == 'hello'
|
19
|
+
comment.created_time.should == Time.parse('2010-01-02T15:37:40+0000')
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should support page as from' do
|
23
|
+
page_comment = FbGraph::Comment.new('12345', :from => {
|
24
|
+
:id => '23456',
|
25
|
+
:name => 'Smart.fm',
|
26
|
+
:category => 'Web Site'
|
27
|
+
})
|
28
|
+
page_comment.from.should == FbGraph::Page.new('23456', :name => 'Smart.fm', :category => 'Web Site')
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connection, '.new' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'platform/statuses?access_token=access_token', 'pages/statuses/platform_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return an array with connection info' do
|
9
|
+
page = FbGraph::Page.new('platform', :access_token => 'access_token')
|
10
|
+
statuses = page.statuses
|
11
|
+
statuses.should be_kind_of(Array)
|
12
|
+
statuses.collection.should be_kind_of(FbGraph::Collection)
|
13
|
+
statuses.owner.should == page
|
14
|
+
statuses.connection.should == :statuses
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe FbGraph::Connection do
|
19
|
+
before(:all) do
|
20
|
+
fake_json(:get, 'me/home?access_token=access_token', 'users/home/me_private')
|
21
|
+
fake_json(:get, 'me/home?limit=25&since=2010-04-27T13%3A06%3A14%2B0000&access_token=access_token', 'users/home/me_private_previous')
|
22
|
+
fake_json(:get, 'me/home?limit=25&access_token=access_token&until=2010-04-27T11%3A07%3A48%2B0000', 'users/home/me_private_next')
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should be useful for pagenation' do
|
26
|
+
me = FbGraph::User.new('me', :access_token => 'access_token')
|
27
|
+
posts = me.home
|
28
|
+
posts.first.created_time.should == Time.parse('2010-04-27T13:06:14+0000')
|
29
|
+
posts.last.created_time.should == Time.parse('2010-04-27T11:07:48+0000')
|
30
|
+
previous_posts = posts.previous
|
31
|
+
previous_posts.first.created_time.should == Time.parse('2010-04-27T13:23:08+0000')
|
32
|
+
previous_posts.last.created_time.should == Time.parse('2010-04-27T13:10:56+0000')
|
33
|
+
next_posts = posts.next
|
34
|
+
next_posts.first.created_time.should == Time.parse('2010-04-27T11:06:29+0000')
|
35
|
+
next_posts.last.created_time.should == Time.parse('2010-04-27T09:44:28+0000')
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::User' do
|
4
|
+
describe FbGraph::Connections::Accounts, '#accounts' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'matake/accounts', 'users/accounts/matake_public')
|
7
|
+
fake_json(:get, 'matake/accounts?access_token=access_token', 'users/accounts/matake_private')
|
8
|
+
fake_json(:get, 'matake/accounts?access_token=access_token_with_manage_pages_permission', 'users/accounts/matake_private_with_manage_pages_permission')
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'when no access_token given' do
|
12
|
+
it 'should raise FbGraph::Unauthorized' do
|
13
|
+
lambda do
|
14
|
+
FbGraph::User.new('matake').accounts
|
15
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'when access_token is given' do
|
20
|
+
it 'should return accounts as FbGraph::Page' do
|
21
|
+
accounts = FbGraph::User.new('matake', :access_token => 'access_token').accounts
|
22
|
+
accounts.class.should == FbGraph::Connection
|
23
|
+
accounts.first.should == FbGraph::Page.new(
|
24
|
+
'140478125968442',
|
25
|
+
:access_token => 'access_token',
|
26
|
+
:name => 'OAuth.jp',
|
27
|
+
:category => 'Technology'
|
28
|
+
)
|
29
|
+
accounts.each do |account|
|
30
|
+
account.should be_instance_of(FbGraph::Page)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'when manage_pages permission given' do
|
35
|
+
it 'should has special access_token behalf of the page' do
|
36
|
+
accounts = FbGraph::User.new('matake', :access_token => 'access_token_with_manage_pages_permission').accounts
|
37
|
+
accounts.first.should == FbGraph::Page.new(
|
38
|
+
'140478125968442',
|
39
|
+
:access_token => 'access_token_for_oauth_jp',
|
40
|
+
:name => 'OAuth.jp',
|
41
|
+
:category => 'Technology'
|
42
|
+
)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::User' do
|
4
|
+
describe FbGraph::Connections::Activities, '#activities' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'arjun/activities', 'users/activities/arjun_public')
|
7
|
+
fake_json(:get, 'arjun/activities?access_token=access_token', 'users/activities/arjun_private')
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'when no access_token given' do
|
11
|
+
it 'should raise FbGraph::Unauthorized' do
|
12
|
+
lambda do
|
13
|
+
FbGraph::User.new('arjun').activities
|
14
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when access_token is given' do
|
19
|
+
it 'should return activities as FbGraph::Page' do
|
20
|
+
activities = FbGraph::User.new('arjun', :access_token => 'access_token').activities
|
21
|
+
activities.class.should == FbGraph::Connection
|
22
|
+
activities.first.should == FbGraph::Page.new(
|
23
|
+
'378209722137',
|
24
|
+
:access_token => 'access_token',
|
25
|
+
:name => 'Doing Things at the Last Minute',
|
26
|
+
:category => '活動'
|
27
|
+
)
|
28
|
+
activities.each do |activity|
|
29
|
+
activity.should be_instance_of(FbGraph::Page)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::User' do
|
4
|
+
describe FbGraph::Connections::Albums, '#albums' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'matake/albums', 'users/albums/matake_public')
|
7
|
+
fake_json(:get, 'matake/albums?access_token=access_token', 'users/albums/matake_private')
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'when no access_token given' do
|
11
|
+
it 'should raise FbGraph::Unauthorized' do
|
12
|
+
lambda do
|
13
|
+
FbGraph::User.new('matake').albums
|
14
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when access_token is given' do
|
19
|
+
it 'should return albums as FbGraph::Album' do
|
20
|
+
albums = FbGraph::User.new('matake', :access_token => 'access_token').albums
|
21
|
+
albums.first.should == FbGraph::Album.new(
|
22
|
+
'19351532276',
|
23
|
+
:access_token => 'access_token',
|
24
|
+
:from => {
|
25
|
+
:id => '579612276',
|
26
|
+
:name => 'Nov Matake'
|
27
|
+
},
|
28
|
+
:name => 'モバイルアップロード',
|
29
|
+
:description => 'hello facebookers!',
|
30
|
+
:link => 'http://www.facebook.com/album.php?aid=25463&id=579612276',
|
31
|
+
:location => 'NYC',
|
32
|
+
:count => 3,
|
33
|
+
:privacy => 'everyone',
|
34
|
+
:created_time => '2008-07-27T11:38:15+0000',
|
35
|
+
:updated_time => '2009-02-07T16:09:53+0000'
|
36
|
+
)
|
37
|
+
albums.each do |album|
|
38
|
+
album.should be_instance_of(FbGraph::Album)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe FbGraph::Connections::Albums, '#album!' do
|
45
|
+
before do
|
46
|
+
fake_json(:post, 'matake/albums', 'users/albums/post_with_valid_access_token')
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should return generated album' do
|
50
|
+
album = FbGraph::User.new('matake', :access_token => 'valid').album!(
|
51
|
+
:name => 'FbGraph test',
|
52
|
+
:message => 'test test test'
|
53
|
+
)
|
54
|
+
album.identifier.should == 401096332276
|
55
|
+
album.access_token.should == 'valid'
|
56
|
+
album.name.should == 'FbGraph test'
|
57
|
+
album.description.should == 'test test test'
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Attending, '#attending' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'smartday/attending?access_token=access_token', 'events/attending/smartday_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return attending users as FbGraph::User' do
|
9
|
+
users = FbGraph::Event.new('smartday', :access_token => 'access_token').attending
|
10
|
+
users.each do |user|
|
11
|
+
user.should be_instance_of(FbGraph::User)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe FbGraph::Connections::Attending, '#attending!' do
|
17
|
+
before do
|
18
|
+
fake_json(:post, '12345/attending', 'events/attending/post_with_valid_access_token')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should return true' do
|
22
|
+
FbGraph::Event.new('12345', :access_token => 'valid').attending!.should be_true
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Books, '#books' do
|
4
|
+
context 'when included by FbGraph::User' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'matake/books', 'users/books/matake_public')
|
7
|
+
fake_json(:get, 'matake/books?access_token=access_token', 'users/books/matake_private')
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'when no access_token given' do
|
11
|
+
it 'should raise FbGraph::Unauthorized' do
|
12
|
+
lambda do
|
13
|
+
FbGraph::User.new('matake').books
|
14
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when access_token is given' do
|
19
|
+
it 'should return books as FbGraph::Page' do
|
20
|
+
books = FbGraph::User.new('matake', :access_token => 'access_token').books
|
21
|
+
books.first.should == FbGraph::Page.new(
|
22
|
+
'102253616477130',
|
23
|
+
:access_token => 'access_token',
|
24
|
+
:name => 'Momo Michael Ende',
|
25
|
+
:category => 'Unknown'
|
26
|
+
)
|
27
|
+
books.each do |book|
|
28
|
+
book.should be_instance_of(FbGraph::Page)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::User' do
|
4
|
+
describe FbGraph::Connections::Checkins, '#checkins' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'mattt/checkins', 'users/checkins/mattt_public')
|
7
|
+
fake_json(:get, 'mattt/checkins?access_token=access_token', 'users/checkins/mattt_private')
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'when no access_token given' do
|
11
|
+
it 'should raise FbGraph::Unauthorized' do
|
12
|
+
lambda do
|
13
|
+
FbGraph::User.new('mattt').checkins
|
14
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when access_token is given' do
|
19
|
+
it 'should return checkins as FbGraph::Checkin' do
|
20
|
+
checkins = FbGraph::User.new('mattt', :access_token => 'access_token').checkins
|
21
|
+
checkins.first.should == FbGraph::Checkin.new(
|
22
|
+
'696876187499',
|
23
|
+
:access_token => 'access_token',
|
24
|
+
:from => {
|
25
|
+
:id => '12820552',
|
26
|
+
:name => 'Roger Pincombe'
|
27
|
+
},
|
28
|
+
:tags => {
|
29
|
+
:data => [{
|
30
|
+
:id => '4810308',
|
31
|
+
:name => 'Mattt Thompson'
|
32
|
+
}]
|
33
|
+
},
|
34
|
+
:message => 'Checking out Austin, TX',
|
35
|
+
:place => {
|
36
|
+
:id => '120454134658381',
|
37
|
+
:name => 'Gowalla HQ',
|
38
|
+
:location => {
|
39
|
+
:latitude => 30.26876,
|
40
|
+
:longitude => -97.74962
|
41
|
+
}
|
42
|
+
},
|
43
|
+
:application => {
|
44
|
+
:id => '6628568379',
|
45
|
+
:name => 'Facebook for iPhone'
|
46
|
+
},
|
47
|
+
:created_time => '2010-09-08T00:09:25+0000'
|
48
|
+
)
|
49
|
+
checkins.each do |checkin|
|
50
|
+
checkin.should be_instance_of(FbGraph::Checkin)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'when included by FbGraph::Page' do
|
58
|
+
describe FbGraph::Connections::Checkins, '#checkins' do
|
59
|
+
before(:all) do
|
60
|
+
fake_json(:get, 'gowalla/checkins', 'pages/checkins/gowalla_public')
|
61
|
+
fake_json(:get, 'gowalla/checkins?access_token=access_token', 'pages/checkins/gowalla_private')
|
62
|
+
end
|
63
|
+
|
64
|
+
context 'when no access_token given' do
|
65
|
+
it 'should raise FbGraph::Unauthorized' do
|
66
|
+
lambda do
|
67
|
+
FbGraph::Page.new('gowalla').checkins
|
68
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context 'when access_token is given' do
|
73
|
+
it 'should return checkins as FbGraph::Checkin' do
|
74
|
+
checkins = FbGraph::Page.new('gowalla', :access_token => 'access_token').checkins
|
75
|
+
checkins.first.should == FbGraph::Checkin.new(
|
76
|
+
'696876187499',
|
77
|
+
:access_token => 'access_token',
|
78
|
+
:from => {
|
79
|
+
:id => '12820552',
|
80
|
+
:name => 'Roger Pincombe'
|
81
|
+
},
|
82
|
+
:tags => {
|
83
|
+
:data => [{
|
84
|
+
:id => '4810308',
|
85
|
+
:name => 'Mattt Thompson'
|
86
|
+
}]
|
87
|
+
},
|
88
|
+
:message => 'Checking out Austin, TX',
|
89
|
+
:place => {
|
90
|
+
:id => '120454134658381',
|
91
|
+
:name => 'Gowalla HQ',
|
92
|
+
:location => {
|
93
|
+
:latitude => 30.26876,
|
94
|
+
:longitude => -97.74962
|
95
|
+
}
|
96
|
+
},
|
97
|
+
:application => {
|
98
|
+
:id => '6628568379',
|
99
|
+
:name => 'Facebook for iPhone'
|
100
|
+
},
|
101
|
+
:created_time => '2010-09-08T00:09:25+0000'
|
102
|
+
)
|
103
|
+
checkins.each do |checkin|
|
104
|
+
checkin.should be_instance_of(FbGraph::Checkin)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|