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,85 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::Post' do
|
4
|
+
|
5
|
+
describe FbGraph::Connections::Comments, '#comments' do
|
6
|
+
# TODO
|
7
|
+
end
|
8
|
+
|
9
|
+
describe FbGraph::Connections::Comments, '#comment!' do
|
10
|
+
context 'when no access_token given' do
|
11
|
+
before do
|
12
|
+
fake_json(:post, '12345/comments', 'posts/comments/post_without_access_token', :status => [500, 'Internal Server Error'])
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should raise FbGraph::Exception' do
|
16
|
+
lambda do
|
17
|
+
FbGraph::Post.new('12345').comment!(:message => 'hello')
|
18
|
+
end.should raise_exception(FbGraph::Exception)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'when invalid access_token is given' do
|
23
|
+
before do
|
24
|
+
fake_json(:post, '12345/comments', 'posts/comments/post_with_invalid_access_token', :status => [500, 'Internal Server Error'])
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should raise FbGraph::Exception' do
|
28
|
+
lambda do
|
29
|
+
FbGraph::Post.new('12345', :access_token => 'invalid').comment!(:message => 'hello')
|
30
|
+
end.should raise_exception(FbGraph::Exception)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'when valid access_token is given' do
|
35
|
+
before do
|
36
|
+
fake_json(:post, '12345/comments', 'posts/comments/post_with_valid_access_token')
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should return generated comment' do
|
40
|
+
comment = FbGraph::Post.new('12345', :access_token => 'valid').comment!(:message => 'hello')
|
41
|
+
comment.identifier.should == '117513961602338_119401698085884_535271'
|
42
|
+
comment.access_token.should == 'valid'
|
43
|
+
comment.message.should == 'hello'
|
44
|
+
comment.access_token.should == 'valid'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe FbGraph::Connections::Comments, '#like!' do
|
50
|
+
context 'when no access_token given' do
|
51
|
+
before do
|
52
|
+
fake_json(:post, '12345/likes', 'posts/likes/post_without_access_token', :status => [500, 'Internal Server Error'])
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should raise FbGraph::Exception' do
|
56
|
+
lambda do
|
57
|
+
FbGraph::Post.new('12345').like!
|
58
|
+
end.should raise_exception(FbGraph::Exception)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context 'when invalid access_token is given' do
|
63
|
+
before do
|
64
|
+
fake_json(:post, '12345/likes', 'posts/likes/post_with_invalid_access_token', :status => [500, 'Internal Server Error'])
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should raise FbGraph::Exception' do
|
68
|
+
lambda do
|
69
|
+
FbGraph::Post.new('12345', :access_token => 'invalid').like!
|
70
|
+
end.should raise_exception(FbGraph::Exception)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
context 'when valid access_token is given' do
|
75
|
+
before do
|
76
|
+
fake_json(:post, '12345/likes', 'posts/likes/post_with_valid_access_token')
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'should return true' do
|
80
|
+
FbGraph::Post.new('12345', :access_token => 'valid').like!.should be_true
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Declined, '#declined' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'smartday/declined?access_token=access_token', 'events/declined/smartday_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return declined users as FbGraph::User' do
|
9
|
+
users = FbGraph::Event.new('smartday', :access_token => 'access_token').declined
|
10
|
+
users.each do |user|
|
11
|
+
user.should be_instance_of(FbGraph::User)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe FbGraph::Connections::Declined, '#declined!' do
|
17
|
+
before do
|
18
|
+
fake_json(:post, '12345/declined', 'events/declined/post_with_valid_access_token')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should return true' do
|
22
|
+
FbGraph::Event.new('12345', :access_token => 'valid').declined!.should be_true
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::User' do
|
4
|
+
describe FbGraph::Connections::Events, '#events' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'matake/events', 'users/events/matake_public')
|
7
|
+
fake_json(:get, 'matake/events?access_token=access_token', 'users/events/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').events
|
14
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when access_token is given' do
|
19
|
+
it 'should return events as FbGraph::Event' do
|
20
|
+
events = FbGraph::User.new('matake', :access_token => 'access_token').events
|
21
|
+
events.first.should == FbGraph::Event.new(
|
22
|
+
'116600818359630',
|
23
|
+
:access_token => 'access_token',
|
24
|
+
:name => 'The Loyal We @ Rainy Day Bookstore and Cafe',
|
25
|
+
:start_time => '2010-04-29T01:30:00+0000',
|
26
|
+
:end_time => '2010-04-29T04:30:00+0000',
|
27
|
+
:location => 'Nishi Azabu'
|
28
|
+
)
|
29
|
+
events.each do |event|
|
30
|
+
event.should be_instance_of(FbGraph::Event)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe FbGraph::Connections::Events, '#events!' do
|
37
|
+
before do
|
38
|
+
fake_json(:post, 'matake/events', 'users/events/post_with_valid_access_token')
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should return generated note' do
|
42
|
+
event = FbGraph::User.new('matake', :access_token => 'valid').event!(
|
43
|
+
:name => 'FbGraph test event',
|
44
|
+
:start_time => Time.utc(2010, 5, 11, 10, 0, 0).to_i,
|
45
|
+
:end_time => Time.utc(2010, 5, 11, 12, 0, 0).to_i
|
46
|
+
)
|
47
|
+
event.name.should == 'FbGraph test event'
|
48
|
+
event.access_token.should == 'valid'
|
49
|
+
event.start_time.should == Time.utc(2010, 5, 11, 10, 0, 0)
|
50
|
+
event.end_time.should == Time.utc(2010, 5, 11, 12, 0, 0)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::User' do
|
4
|
+
|
5
|
+
describe FbGraph::Connections::Feed, '#feed' do
|
6
|
+
before(:all) do
|
7
|
+
fake_json(:get, 'arjun/feed', 'users/feed/arjun_public')
|
8
|
+
fake_json(:get, 'arjun/feed?access_token=access_token', 'users/feed/arjun_private')
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'when no access_token given' do
|
12
|
+
it 'should return public posts on the user\'s wall as FbGraph::Post' do
|
13
|
+
posts = FbGraph::User.new('arjun').feed
|
14
|
+
posts.first.should == FbGraph::Post.new(
|
15
|
+
'7901103_121392141207495',
|
16
|
+
:from => {
|
17
|
+
:id => '7901103',
|
18
|
+
:name => 'Arjun Banker'
|
19
|
+
},
|
20
|
+
:picture => 'http://external.ak.fbcdn.net/safe_image.php?d=d2cc5beedaa401ba54eccc9014647285&w=130&h=130&url=http%3A%2F%2Fimages.ted.com%2Fimages%2Fted%2F269_389x292.jpg',
|
21
|
+
:link => 'http://www.ted.com/talks/wade_davis_on_endangered_cultures.html',
|
22
|
+
:name => 'Wade Davis on endangered cultures | Video on TED.com',
|
23
|
+
:caption => 'www.ted.com',
|
24
|
+
:description => 'TED Talks With stunning photos and stories, National Geographic Explorer Wade Davis celebrates the extraordinary diversity of the world\'s indigenous cultures, which are disappearing from the planet at an alarming rate.',
|
25
|
+
:icon => 'http://static.ak.fbcdn.net/rsrc.php/z9XZ8/hash/976ulj6z.gif',
|
26
|
+
:created_time => '2010-04-25T04:05:32+0000',
|
27
|
+
:updated_time => '2010-04-25T04:05:32+0000',
|
28
|
+
:likes => 1
|
29
|
+
)
|
30
|
+
posts.each do |post|
|
31
|
+
post.should be_instance_of(FbGraph::Post)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'when access_token is given' do
|
37
|
+
it 'should return posts on the user\'s wall as FbGraph::Post' do
|
38
|
+
posts = FbGraph::User.new('arjun').feed(:access_token => 'access_token')
|
39
|
+
posts.first.should == FbGraph::Post.new(
|
40
|
+
'7901103_121392141207495',
|
41
|
+
:access_token => 'access_token',
|
42
|
+
:from => {
|
43
|
+
:id => '7901103',
|
44
|
+
:name => 'Arjun Banker'
|
45
|
+
},
|
46
|
+
:picture => 'http://external.ak.fbcdn.net/safe_image.php?d=d2cc5beedaa401ba54eccc9014647285&w=130&h=130&url=http%3A%2F%2Fimages.ted.com%2Fimages%2Fted%2F269_389x292.jpg',
|
47
|
+
:link => 'http://www.ted.com/talks/wade_davis_on_endangered_cultures.html',
|
48
|
+
:name => 'Wade Davis on endangered cultures | Video on TED.com',
|
49
|
+
:caption => 'www.ted.com',
|
50
|
+
:description => 'TED Talks With stunning photos and stories, National Geographic Explorer Wade Davis celebrates the extraordinary diversity of the world\'s indigenous cultures, which are disappearing from the planet at an alarming rate.',
|
51
|
+
:icon => 'http://static.ak.fbcdn.net/rsrc.php/z9XZ8/hash/976ulj6z.gif',
|
52
|
+
:created_time => '2010-04-25T04:05:32+0000',
|
53
|
+
:updated_time => '2010-04-25T04:05:32+0000',
|
54
|
+
:likes => 1
|
55
|
+
)
|
56
|
+
posts.each do |post|
|
57
|
+
post.should be_instance_of(FbGraph::Post)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe FbGraph::Connections::Feed, '#feed!' do
|
64
|
+
context 'when no access_token given' do
|
65
|
+
before do
|
66
|
+
fake_json(:post, 'matake/feed', 'users/feed/post_without_access_token', :status => [500, 'Internal Server Error'])
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'should raise FbGraph::Exception' do
|
70
|
+
lambda do
|
71
|
+
FbGraph::User.new('matake').feed!(:message => 'hello')
|
72
|
+
end.should raise_exception(FbGraph::Exception)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
context 'when invalid access_token is given' do
|
77
|
+
before do
|
78
|
+
fake_json(:post, 'matake/feed', 'users/feed/post_with_invalid_access_token', :status => [500, 'Internal Server Error'])
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'should raise FbGraph::Exception' do
|
82
|
+
lambda do
|
83
|
+
FbGraph::User.new('matake', :access_token => 'invalid').feed!(:message => 'hello')
|
84
|
+
end.should raise_exception(FbGraph::Exception)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
context 'when valid access_token is given' do
|
89
|
+
before do
|
90
|
+
fake_json(:post, 'matake/feed', 'users/feed/post_with_valid_access_token')
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should return generated post' do
|
94
|
+
post = FbGraph::User.new('matake', :access_token => 'valid').feed!(:message => 'hello')
|
95
|
+
post.identifier.should == '579612276_401071652276'
|
96
|
+
post.message.should == 'hello'
|
97
|
+
post.access_token.should == 'valid'
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Friends, '#friends' do
|
4
|
+
context 'when included by FbGraph::User' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'me/friends', 'users/friends/me_public')
|
7
|
+
fake_json(:get, 'me/friends?access_token=access_token', 'users/friends/me_private')
|
8
|
+
fake_json(:get, 'arjun/friends', 'users/friends/arjun_public')
|
9
|
+
fake_json(:get, 'arjun/friends?access_token=access_token', 'users/friends/arjun_private')
|
10
|
+
end
|
11
|
+
|
12
|
+
context 'when no access_token given' do
|
13
|
+
it 'should raise FbGraph::Exception' do
|
14
|
+
lambda do
|
15
|
+
FbGraph::User.new('arjun').friends
|
16
|
+
end.should raise_exception(FbGraph::Exception)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'when identifier is not me' do
|
21
|
+
it 'should raise FbGraph::Exception' do
|
22
|
+
lambda do
|
23
|
+
FbGraph::User.new('arjun', :access_token => 'access_token').friends
|
24
|
+
end.should raise_exception(FbGraph::Exception)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'when identifier is me and no access_token is given' do
|
29
|
+
it 'should raise FbGraph::Unauthorized' do
|
30
|
+
lambda do
|
31
|
+
FbGraph::User.new('me').friends
|
32
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'when identifier is me and access_token is given' do
|
37
|
+
it 'should return friends as FbGraph::User' do
|
38
|
+
users = FbGraph::User.new('me', :access_token => 'access_token').friends
|
39
|
+
users.first.should == FbGraph::User.new(
|
40
|
+
'6401',
|
41
|
+
:access_token => 'access_token',
|
42
|
+
:name => 'Kirk McMurray'
|
43
|
+
)
|
44
|
+
users.each do |user|
|
45
|
+
user.should be_instance_of(FbGraph::User)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Groups, '#groups' do
|
4
|
+
context 'when included by FbGraph::User' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'matake/groups', 'users/groups/matake_public')
|
7
|
+
fake_json(:get, 'matake/groups?access_token=access_token', 'users/groups/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').groups
|
14
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when access_token is given' do
|
19
|
+
it 'should return groups as FbGraph::Group' do
|
20
|
+
groups = FbGraph::User.new('matake', :access_token => 'access_token').groups
|
21
|
+
groups.first.should == FbGraph::Group.new(
|
22
|
+
'115286585902',
|
23
|
+
:access_token => 'access_token',
|
24
|
+
:name => 'iPhone 3G S'
|
25
|
+
)
|
26
|
+
groups.each do |group|
|
27
|
+
group.should be_instance_of(FbGraph::Group)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Home, '#home' do
|
4
|
+
context 'when included by FbGraph::User' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'me/home', 'users/home/me_public')
|
7
|
+
fake_json(:get, 'me/home?access_token=access_token', 'users/home/me_private')
|
8
|
+
fake_json(:get, 'arjun/home', 'users/home/arjun_public')
|
9
|
+
fake_json(:get, 'arjun/home?access_token=access_token', 'users/home/arjun_private')
|
10
|
+
end
|
11
|
+
|
12
|
+
context 'when no access_token given' do
|
13
|
+
it 'should raise FbGraph::Exception' do
|
14
|
+
lambda do
|
15
|
+
FbGraph::User.new('arjun').home
|
16
|
+
end.should raise_exception(FbGraph::Exception)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'when identifier is not me' do
|
21
|
+
it 'should raise FbGraph::Exception' do
|
22
|
+
lambda do
|
23
|
+
FbGraph::User.new('arjun', :access_token => 'access_token').home
|
24
|
+
end.should raise_exception(FbGraph::Exception)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'when identifier is me and no access_token is given' do
|
29
|
+
it 'should raise FbGraph::Unauthorized' do
|
30
|
+
lambda do
|
31
|
+
FbGraph::User.new('me').home
|
32
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'when identifier is me and access_token is given' do
|
37
|
+
it 'should return public posts in the user\'s news feed as FbGraph::Post' do
|
38
|
+
posts = FbGraph::User.new('me', :access_token => 'access_token').home
|
39
|
+
posts.first.should == FbGraph::Post.new(
|
40
|
+
'634033380_112599768777073',
|
41
|
+
:access_token => 'access_token',
|
42
|
+
:from => {
|
43
|
+
:id => '634033380',
|
44
|
+
:name => 'nishikokura hironobu'
|
45
|
+
},
|
46
|
+
:message => "こちらこそありがとうございました!僕はctrl+無変換ですwRT @_eskm: @pandeiro245 こないだの日曜はありがとうございました!面白い内容でした。ちなみにfnrirってCapsLockで起動ですが、英数変換と同じボタンでどうしてます?起動を違うボタンに変更",
|
47
|
+
:icon => 'http://photos-h.ak.fbcdn.net/photos-ak-sf2p/v43/23/2231777543/app_2_2231777543_2528.gif',
|
48
|
+
:attribution => 'Twitter',
|
49
|
+
:created_time => '2010-04-27T13:06:14+0000',
|
50
|
+
:updated_time => '2010-04-27T13:06:14+0000'
|
51
|
+
)
|
52
|
+
posts.each do |post|
|
53
|
+
post.should be_instance_of(FbGraph::Post)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Interests, '#interests' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'matake/interests?access_token=access_token', 'users/interests/matake_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return interests pages as FbGraph::Page' do
|
9
|
+
pages = FbGraph::User.new('matake', :access_token => 'access_token').interests
|
10
|
+
pages.each do |page|
|
11
|
+
page.should be_instance_of(FbGraph::Page)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Invited, '#invited' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'smartday/invited?access_token=access_token', 'events/invited/smartday_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return invited users as FbGraph::User' do
|
9
|
+
users = FbGraph::Event.new('smartday', :access_token => 'access_token').invited
|
10
|
+
users.each do |user|
|
11
|
+
user.should be_instance_of(FbGraph::User)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::User' do
|
4
|
+
describe FbGraph::Connections::Likes, '#likes' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'arjun/likes', 'users/likes/arjun_public')
|
7
|
+
fake_json(:get, 'arjun/likes?access_token=access_token', 'users/likes/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').likes
|
14
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when access_token is given' do
|
19
|
+
it 'should return liked pages as FbGraph::Page' do
|
20
|
+
likes = FbGraph::User.new('arjun', :access_token => 'access_token').likes
|
21
|
+
likes.first.should == FbGraph::Page.new(
|
22
|
+
'378209722137',
|
23
|
+
:access_token => 'access_token',
|
24
|
+
:name => 'Doing Things at the Last Minute',
|
25
|
+
:category => '活動'
|
26
|
+
)
|
27
|
+
likes.each do |like|
|
28
|
+
like.should be_instance_of(FbGraph::Page)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|